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

优秀网站作品柯林wap建站程序个人版

优秀网站作品,柯林wap建站程序个人版,小众软件,南京网站工作室#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/14375223/

相关文章:

  • 住房城乡建设部执业资格注册中心网站如何给自己做的网站加上域名
  • 清苑区建设局网站seo快速排名软件app
  • 普陀网站建设哪家便宜北京网站建设 标准型 新翼
  • 珠海做网站找哪家好商城网站现在可以做么
  • 企业建网站选中企动力招聘网站哪个平台比较好
  • 重庆 手机网站制作营销型网站建设推来客网络
  • 网站可以做二维码吗百度网盘资源链接入口
  • 设置本机外网ip做网站网站的建设流程是什么
  • 网站建设的个人条件关键词网站建设价格
  • 湖南做网站公司有哪些图片做多的网站是哪个
  • 宁波网站建设电话群晖docker wordpress设置
  • 网站设计怎么弄手机app制作pdf
  • 17zwd一起做网站广州我的小程序在哪里找
  • 论坛网站开发外文文献微信seo是什么意思
  • 网站建设培训学校济南学网站建设哪里好
  • 网站上线如何做公司名字电商网站是什么意思
  • 晋江哪里可以学建设网站怎么建个网站
  • 互联网黄页广告站长工具seo综合查询腾讯
  • 个人网站是啥做淘客网站需要企业的域名
  • 网站被黑了h5免费
  • zencart 网站老是跳转到原地址如何做网上销售网站
  • 公司内部 网站开发抖音上的小程序怎么赚钱
  • 栖霞建设招标网站wordpress 不同页面
  • 网站建设必须要服务器吗小程序报价单模板
  • 佛山网站公司建立网站链接结构的基本方式是
  • wordpress怎么上传乐视频听排名优化软件点击
  • 徐州做网站的公司有哪些长宁区网站建设公司
  • 网站什么做的精品网站建设
  • dedecms导航网站电子商务公司网站怎么建
  • 南宁网站推广流程公司关键词排名优化