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

济南网站建设联系小七上海网站代优化

济南网站建设联系小七,上海网站代优化,怎么查看网站点击量,科普网站栏目建设方案文章目录 一、准备环境二、准备数据三、搭建训练网络三、训练模型#xff08;1#xff09;VSCode训练情况#xff1a;#xff08;2#xff09;jupyter notebook训练情况#xff1a; 四、模型评估 模型预测1、绘制Accuracy-Loss图2、显示model2的预测效果 五、总结1… 文章目录 一、准备环境二、准备数据三、搭建训练网络三、训练模型1VSCode训练情况2jupyter notebook训练情况 四、模型评估 模型预测1、绘制Accuracy-Loss图2、显示model2的预测效果 五、总结1、plt.savefig(./数据展示.jpg)保存的图片在文件夹内打开是空白的如下图所示2. 优化器是什么包括哪些 本文为365天深度学习训练营 中的学习记录博客 原作者K同学啊 | 接辅导、项目定制 本文主要探究不同优化器、以及不同参数配置对模型的影响最终对Adam、SGD优化器进行比较并绘制比较结果。 使用的数据集为咖啡豆数据集共有四类。 优化器常用的有Adam、SGD。优化器的归纳将放在文末的总结部分。 本文将使用Adam优化器的模型命名为model1使用SGD优化器的模型命名为model2然后根据模型训练结果绘制各自的Accuracy-Loss图。比较得出在运行环境、epoch次数相同、模型结构相同等条件下Adam优化器的整体情况要优于SGD优化器。 一、准备环境 # 1. 设置环境 import sys import tensorflow as tf from datetime import datetimefrom tensorflow import keras import matplotlib.pyplot as plt import pandas as pd import numpy as np import warnings,os,PIL,pathlibprint(---------------------1.配置环境------------------) print(Start time: , datetime.today()) print(tensorflow version: tf.__version__) print(Python version: sys.version)gpus 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)# 打印显卡信息确认GPU可用print(GPU: gpus) else:print(Using CPU)warnings.filterwarnings(ignore) #忽略警告信息 plt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签 plt.rcParams[axes.unicode_minus] False # 用来正常显示负号Q1 VSCode虚拟环境安装pandas 二、准备数据 # 2.导入数据 # 本次使用咖啡豆数据集共4类 print(---------------------2.1 从本地读取数据------------------) data_dir D:/jupyter notebook/DL-100-days/datasets/coffebeans-data data_dir pathlib.Path(data_dir) image_count len(list(data_dir.glob(*/*))) print(图片总数为,image_count)batch_size 16 img_height 336 img_width 336 关于image_dataset_from_directory()的详细介绍可以参考文章https://mtyjkh.blog.csdn.net/article/details/117018789print(---------------------2.2 划分训练数据------------------) train_ds tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split0.2,subsettraining,seed12,image_size(img_height, img_width),batch_sizebatch_size) 关于image_dataset_from_directory()的详细介绍可以参考文章https://mtyjkh.blog.csdn.net/article/details/117018789print(---------------------2.3 划分验证数据------------------) val_ds tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split0.2,subsetvalidation,seed12,image_size(img_height, img_width),batch_sizebatch_size)print(---------------------2.4 打印数据类别 数据的shape------------------) class_names train_ds.class_names print(class_names)for image_batch, labels_batch in train_ds:print(image_batch.shape)print(labels_batch.shape)breakprint(---------------------2.5 配置数据集------------------) AUTOTUNE tf.data.AUTOTUNEdef train_preprocessing(image,label):return (image/255.0,label)train_ds (train_ds.cache().shuffle(1000).map(train_preprocessing) # 这里可以设置预处理函数 # .batch(batch_size) # 在image_dataset_from_directory处已经设置了batch_size.prefetch(buffer_sizeAUTOTUNE) )val_ds (val_ds.cache().shuffle(1000).map(train_preprocessing) # 这里可以设置预处理函数 # .batch(batch_size) # 在image_dataset_from_directory处已经设置了batch_size.prefetch(buffer_sizeAUTOTUNE) )print(---------------------2.6 数据可视化显示部分样本图片------------------) plt.figure(figsize(10, 8)) # 图形的宽为10高为5 plt.suptitle(数据展示)for images, labels in train_ds.take(1):for i in range(15):plt.subplot(4, 5, i 1)plt.xticks([])plt.yticks([])plt.grid(False)# 显示图片plt.imshow(images[i])# 显示标签plt.xlabel(class_names[labels[i]-1])plt.show() plt.savefig(./数据展示.jpg)Q2plt.savefig(./数据展示.jpg)保存的图片在文件夹内打开是空白的 三、搭建训练网络 print(---------------------3. 搭建训练网络此处预训练模型调用VGG-16官方模型------------------) # 自定义一个创建模型的函数形参是优化器类型预训练模型是VGG-16但屏蔽了自带的训练部分以及顶层然后对输出进行处理 # 在此处创建了两个网络拥有不同的优化器类型 from tensorflow.keras.layers import Dropout,Dense,BatchNormalization from tensorflow.keras.models import Modeldef create_model(optimizeradam):# 加载预训练模型vgg16_base_model tf.keras.applications.vgg16.VGG16(weightsimagenet,include_topFalse,input_shape(img_width, img_height, 3),poolingavg)for layer in vgg16_base_model.layers:layer.trainable FalseX vgg16_base_model.outputX Dense(170, activationrelu)(X)X BatchNormalization()(X)X Dropout(0.5)(X)output Dense(len(class_names), activationsoftmax)(X)vgg16_model Model(inputsvgg16_base_model.input, outputsoutput)vgg16_model.compile(optimizeroptimizer,losssparse_categorical_crossentropy,metrics[accuracy])return vgg16_modelmodel1 create_model(optimizertf.keras.optimizers.Adam()) model2 create_model(optimizertf.keras.optimizers.SGD()) model2.summary()三、训练模型 print(---------------------4.启动训练epoch50------------------) # try加入早停试一下一个epoch跑完要220s时间还是有点久 NO_EPOCHS 50history_model1 model1.fit(train_ds, epochsNO_EPOCHS, verbose1, validation_dataval_ds) history_model2 model2.fit(train_ds, epochsNO_EPOCHS, verbose1, validation_dataval_ds)1VSCode训练情况 model1.fit()Adam优化器 model2.fit()SGD优化器 2jupyter notebook训练情况 model1.fit()即Adam优化器 model2.fit()即SGD优化器 四、模型评估 模型预测 1、绘制Accuracy-Loss图 print(---------------------5.1 模型评估绘制Accuracy-Loss图------------------) from matplotlib.ticker import MultipleLocator plt.rcParams[savefig.dpi] 300 #图片像素 plt.rcParams[figure.dpi] 300 #分辨率acc1 history_model1.history[accuracy] acc2 history_model2.history[accuracy] val_acc1 history_model1.history[val_accuracy] val_acc2 history_model2.history[val_accuracy]loss1 history_model1.history[loss] loss2 history_model2.history[loss] val_loss1 history_model1.history[val_loss] val_loss2 history_model2.history[val_loss]epochs_range range(len(acc1))plt.figure(figsize(16, 4)) plt.subplot(1, 2, 1)plt.plot(epochs_range, acc1, labelTraining Accuracy-Adam) plt.plot(epochs_range, acc2, labelTraining Accuracy-SGD) plt.plot(epochs_range, val_acc1, labelValidation Accuracy-Adam) plt.plot(epochs_range, val_acc2, labelValidation Accuracy-SGD) plt.legend(loclower right) plt.title(Training and Validation Accuracy) # 设置刻度间隔x轴每1一个刻度 ax plt.gca() ax.xaxis.set_major_locator(MultipleLocator(1))plt.subplot(1, 2, 2) plt.plot(epochs_range, loss1, labelTraining Loss-Adam) plt.plot(epochs_range, loss2, labelTraining Loss-SGD) plt.plot(epochs_range, val_loss1, labelValidation Loss-Adam) plt.plot(epochs_range, val_loss2, labelValidation Loss-SGD) plt.legend(locupper right) plt.title(Training and Validation Loss)# 设置刻度间隔x轴每1一个刻度 ax plt.gca() ax.xaxis.set_major_locator(MultipleLocator(1)) plt.savefig(./Accuracy-Loss图.jpg) plt.show()plt.show()显示的图片 比较Accuracy图表可以看出训练时Adam优化器的表现要稍优于SGD优化器而验证时则相反。 Q: VSCode绘制出来的图咋这么奇怪 改变plt.savefig(./Accuracy-Loss图.jpg)的位置后所保存的图片比直接plt.show()的图片比例要好些。 2、显示model2的预测效果 print(---------------------5.2 模型预测------------------) def test_accuracy_report(model):score model.evaluate(val_ds, verbose0)print(Loss function: %s, accuracy: % score[0], score[1])test_accuracy_report(model2)VSCode环境下的预测结果 jupyter notebook环境下的预测结果 五、总结 1、plt.savefig(./数据展示.jpg)保存的图片在文件夹内打开是空白的如下图所示 将保存的语句放在plt.show()之前因为plt.show()之后会默认打开一个空白画板。 2. 优化器是什么包括哪些 参考文章也是来自训练营文章 优化器是什么 优化器是一种算法它在模型优化过程中动态地调整梯度的大小和方向使模型能够收敛到更好的位置或者用更快的速度进行收敛。各类优化器方法总结如下
http://www.sadfv.cn/news/58104/

相关文章:

  • 网站建设历史安徽博物馆网站建设的调研报告
  • 服务网站设计案例海外互联网推广平台
  • 广德网站建设erp系统十大软件
  • 泉州服装电商网站建设泰安房产信息网
  • 海外社交网站开发中山哪里可以做网站
  • 宁波定制网站建设解决方案动态商务网站开发与管理
  • 广西专业做网站的公司重庆网站建设价位
  • 咋样查看网站用什么编程语言做的建站网站模板下载
  • seo 网站推广直播网站排名
  • 养老院网站开发背景福永小学网站建设
  • 建站平台工具想要开网店怎么开
  • 做一网站要学些什么软件个人开公司需要多少注册资金
  • 来个网站吧好人一生平安2022怎样上百度做广告
  • 网站上实用的h5特效flash做网站通栏
  • 视频网站建设费用明细目前做网站的好处
  • wordpress图片站南通网站优建设
  • 网页设计 网站大型网站建设 cms cdm dmp
  • 北京网站优化seowordpress 4.0 谷歌字体
  • 南京网站备案蓝山网站建设
  • 2个域名指向同一个网站搜索引擎营销怎么做
  • 网站维护运行建设报告渭南最新防疫信息
  • 承德北京网站建设乌兰察布做网站
  • 龙岩网站设计理念公司做网站的目的
  • 京东做代码的网站做外贸的免费网站有哪些
  • 响水县住房和城乡建设局网站伊宁市做网站
  • 响应式网站建设模板下载小型企业网络配置实例
  • 潍坊高端网站设计深圳网站哪家强
  • 备案价公示网站erp系统登录入口
  • 网站开发的步骤过程网站备案帐号找回密码
  • 建设景区网站要有的内容seo挂机赚钱