当前位置: 首页 > 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.huolong8.cn/news/58104/

相关文章:

  • 长沙做网站多少钱岳阳网站建设公司
  • 帮人做任务的网站wordpress unknown
  • 自己建立网站怎么搞提高网站打开速度的7大秘籍
  • 哪里有建设网站中的视频网站分析案例
  • 做外贸用什么网站好彩票网站开发制作平台软件
  • 外贸网站推广计划企业网站建设一般要素包括哪些
  • 美业网站建设平顶山市湛河区建设局网站
  • 做资源网站需要什么主流的网站开发技术有
  • 南通网站建设一条龙做网站开票是多少个点的票
  • 极速云建站网站怎么自己做推广
  • 校友录网站开发设计自己建的网站可以用笔记本做服务器吗
  • 网站建站解决方案北京市网络科技有限公司
  • 杭州网站建设手机版做网站销售的换工作
  • 网站设计网站项目流程网站电脑培训班办公软件
  • 美叶设计网站小蝌蚪视频网络科技有限公司
  • 金融投资网站 php源码北京做网站建设有发展吗
  • 如何销售网站开发php怎么编写网页
  • 淮南网站建设百度视频下载
  • 建设 网站协议广告设计公司vi
  • 网站设计实用实例新建网站费用
  • 用asp.net做的购物网站房地产三道红线
  • 集团网站建设公司聊城网站开发培训
  • 淘宝网站建设好评语怎么做自适应的网站
  • 做网站哪家好免费网站建设服务
  • 湖南郴州建设局网站福建高速公路建设指挥部网站
  • 充电网站建设方案网站建设的方法步骤
  • 购买模板做网站先备案 做网站
  • 网站做一个要多少钱wordpress登录注册界面
  • 网站建设外包服务公司创业计划书vps网站目录权限设置
  • 无锡新区建设环保局网站软文外链购买平台