当前位置: 首页 > news >正文

优秀网站作品潍坊网站制作保定公司电话

优秀网站作品,潍坊网站制作保定公司电话,电影网站开发与设计,常州网站外包#x1f368; 本文为#x1f517;365天深度学习训练营 中的学习记录博客#x1f356; 原作者#xff1a;K同学啊 文章目录 一、前言1、结构改进2、分组卷积 二、前期工作1.设置GPU2. 导入数据3. 查看数据 三、数据预处理1、加载数据2、配置数据集 四、构建网络1、导入包2、… 本文为365天深度学习训练营 中的学习记录博客 原作者K同学啊 文章目录 一、前言1、结构改进2、分组卷积 二、前期工作1.设置GPU2. 导入数据3. 查看数据 三、数据预处理1、加载数据2、配置数据集 四、构建网络1、导入包2、分组卷积模块3、残差单元4、堆叠残差单元5、搭建ResNeXt-50网络6、查看模型摘要 五、编译六、训练模型七、模型评估 电脑环境 语言环境Python 3.8.0 深度学习环境tensorflow 2.17.0 一、前言 本次使用的数据集是猴痘病毒数据集。 1、结构改进 上图是ResNet左与ResNeXt右block的差异。在ResNet中输入的具有256个通道的特征经过1×1卷积压缩4倍到64个通道之后3×3的卷积核用于处理特征经1×1卷积扩大通道数与原特征残差连接后输出。ResNeXt也是相同的处理策略但在ResNeXt中输入的具有256个通道的特征被分为32个组每组被压缩64倍到4个通道后进行处理。32个组相加后与原特征残差连接后输出。这里cardinatity指的是一个block中所具有的相同分支的数目。 2、分组卷积 ResNeXt中采用的分组卷积简单来说就是将特征图分为不同的组再对每组特征图分别进行卷积这个操作可以有效的降低计算量。 在分组卷积中每个卷积核只处理部分通道比如下图中红色卷积核只处理红色的通道绿色卷积核只处理绿色通道黄色卷积核只处理黄色通道。此时每个卷积核有2个通道每个卷积核生成一张特征图。 二、前期工作 1.设置GPU from tensorflow import keras from keras import layers, models import os, PIL, pathlib import matplotlib.pyplot as plt import tensorflow as tfgpus tf.config.list_physical_devices(GPU)if gpus:gpu0 gpus[0] #如果有多个GPU仅使用第0个GPUtf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量按需使用tf.config.set_visible_devices([gpu0],GPU)2. 导入数据 data_dir ./data/ data_dir pathlib.Path(data_dir)3. 查看数据 image_count len(list(data_dir.glob(*/*.jpg))) print(图片总数为,image_count)输出图片总数为 2142 三、数据预处理 1、加载数据 batch_size 8 img_height 224 img_width 224train_ds tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split0.2,subsettraining,seed123,image_size(img_height, img_width),batch_sizebatch_size)val_ds tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split0.2,subsetvalidation,seed123,image_size(img_height, img_width),batch_sizebatch_size)class_names train_ds.class_names2、配置数据集 AUTOTUNE tf.data.AUTOTUNE train_ds train_ds.cache().shuffle(1000).prefetch(buffer_sizeAUTOTUNE) val_ds val_ds.cache().prefetch(buffer_sizeAUTOTUNE)四、构建网络 1、导入包 import numpy as np from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.utils import to_categorical from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Input, Dense, Dropout, Conv2D, MaxPool2D, Flatten, GlobalAvgPool2D, concatenate, \ BatchNormalization, Activation, Add, ZeroPadding2D, Lambda from tensorflow.keras.optimizers import Adam from tensorflow.keras.layers import ReLU import matplotlib.pyplot as plt from tensorflow.keras.callbacks import LearningRateScheduler from tensorflow.keras.models import Model2、分组卷积模块 # 定义分组卷积 def grouped_convolution_block(init_x, strides, groups, g_channels):group_list []# 分组进行卷积for c in range(groups):# 分组取出数据x Lambda(lambda x: x[:, :, :, c * g_channels:(c 1) * g_channels])(init_x)# 分组进行卷积x Conv2D(filtersg_channels, kernel_size(3, 3),stridesstrides, paddingsame, use_biasFalse)(x)# 存入listgroup_list.append(x)# 合并list中的数据group_merage concatenate(group_list, axis3)x BatchNormalization(epsilon1.001e-5)(group_merage)x ReLU()(x)return x3、残差单元 # 定义残差单元 def block(x, filters, strides1, groups32, conv_shortcutTrue):if conv_shortcut:shortcut Conv2D(filters * 2, kernel_size(1, 1), stridesstrides, paddingsame, use_biasFalse)(x)# epsilon为BN公式中防止分母为零的值shortcut BatchNormalization(epsilon1.001e-5)(shortcut)else:# identity_shortcutshortcut x# 三层卷积层x Conv2D(filtersfilters, kernel_size(1, 1), strides1, paddingsame, use_biasFalse)(x)x BatchNormalization(epsilon1.001e-5)(x)x ReLU()(x)# 计算每组的通道数g_channels int(filters / groups)# 进行分组卷积x grouped_convolution_block(x, strides, groups, g_channels)x Conv2D(filtersfilters * 2, kernel_size(1, 1), strides1, paddingsame, use_biasFalse)(x)x BatchNormalization(epsilon1.001e-5)(x)x Add()([x, shortcut])x ReLU()(x)return x4、堆叠残差单元 # 堆叠残差单元 def stack(x, filters, blocks, strides, groups32):# 每个stack的第一个block的残差连接都需要使用1*1卷积升维x block(x, filters, stridesstrides, groupsgroups)for i in range(blocks):x block(x, filters, groupsgroups, conv_shortcutFalse)return x5、搭建ResNeXt-50网络 # 定义ResNext50(32*4d)网络 def ResNext50(input_shape, num_classes):inputs Input(shapeinput_shape)# 填充3圈0[224,224,3]-[230,230,3]x ZeroPadding2D((3, 3))(inputs)x Conv2D(filters64, kernel_size(7, 7), strides2, paddingvalid)(x)x BatchNormalization(epsilon1.001e-5)(x)x ReLU()(x)# 填充1圈0x ZeroPadding2D((1, 1))(x)x MaxPool2D(pool_size(3, 3), strides2, paddingvalid)(x)# 堆叠残差结构x stack(x, filters128, blocks2, strides1)x stack(x, filters256, blocks3, strides2)x stack(x, filters512, blocks5, strides2)x stack(x, filters1024, blocks2, strides2)# 根据特征图大小进行全局平均池化x GlobalAvgPool2D()(x)x Dense(num_classes, activationsoftmax)(x)# 定义模型model Model(inputsinputs, outputsx)return model6、查看模型摘要 modelResNext50(input_shape(224,224,3),num_classes1000) model.summary()五、编译 # 设置优化器 opt tf.keras.optimizers.Adam(learning_rate1e-4) model.compile(optimizeropt,losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsTrue),metrics[accuracy])六、训练模型 epochs 20history model.fit(train_ds,validation_dataval_ds,epochsepochs)Epoch 1/20 215/215 ━━━━━━━━━━━━━━━━━━━━ 292s 557ms/step - accuracy: 0.4838 - loss: 1.8304 - val_accuracy: 0.5701 - val_loss: 0.7159 .................................................................................. Epoch 18/20 215/215 ━━━━━━━━━━━━━━━━━━━━ 37s 173ms/step - accuracy: 0.9794 - loss: 0.0574 - val_accuracy: 0.8014 - val_loss: 0.6634 Epoch 19/20 215/215 ━━━━━━━━━━━━━━━━━━━━ 37s 173ms/step - accuracy: 0.9749 - loss: 0.0660 - val_accuracy: 0.7640 - val_loss: 0.7989 Epoch 20/20 215/215 ━━━━━━━━━━━━━━━━━━━━ 41s 175ms/step - accuracy: 0.9610 - loss: 0.1093 - val_accuracy: 0.7780 - val_loss: 0.6207七、模型评估 acc history.history[accuracy] val_acc history.history[val_accuracy]loss history.history[loss] val_loss history.history[val_loss]epochs_range range(epochs)plt.figure(figsize(12, 4)) plt.subplot(1, 2, 1) plt.plot(epochs_range, acc, labelTraining Accuracy) plt.plot(epochs_range, val_acc, labelValidation Accuracy) plt.legend(loclower right) plt.title(Training and Validation Accuracy)plt.subplot(1, 2, 2) plt.plot(epochs_range, loss, labelTraining Loss) plt.plot(epochs_range, val_loss, labelValidation Loss) plt.legend(locupper right) plt.title(Training and Validation Loss) plt.show()
http://www.hkea.cn/news/14546929/

相关文章:

  • 个人免费开发网站怎样用源代码做网站
  • 怎么增加网站百度收录网站模板建站
  • cocos2d-js可以做网站吗湖南智能网站建设费用
  • o2o网站设计公司官方网站怎么制作
  • 做网站背景河北省建设银行网站
  • 深圳网站开发公司哪家好天元建设集团有限公司地址
  • 网站建设公司需要具备招标网站平台有哪些
  • 网站服务器租用技巧科技词语
  • 营销网站建设都是专业技术人员长春网站建设招代理
  • 怎么查看网站是什么软件做的网站建设制作设计营销 大连
  • 前端做的网站上外国网站用什么dns
  • 海曙网站建设网站潍坊网站建设报价
  • 如何建设一个自己的网站首页9277在线观看最新资源
  • 深圳前海网站设计微信辅助做任务网站
  • 商城网站大全宜宾网站设计
  • 购物网站建设的目标大数据精准客户
  • 网站扁平结构北京有哪些著名网站
  • 商务网站建设与维护 ppt软件开发app制作公司
  • 自己主机做标签电影网站搜索引擎入口
  • 怎样才能建设网站平台公司发债
  • 网站运营策略如何做电子商务网站开发与管理
  • 南京网站模板成都网站快速排名优化
  • php 网站安装原理wordpress5.2安装教程
  • 网站架构建设关键词查网站
  • ui中国设计网站页面站长查询
  • 营销型网站设计思路网站设计评价标准
  • 唐山企业网站建设公司设计公司网站案例
  • 主题 外贸网站 模板商城网站wordpress
  • 桂林龙胜网站建设绍兴seo网站管理
  • 甘肃省建设银行网站wordpress做手机网站