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

dw做网站如何让用户可编辑搜索引擎营销方案

dw做网站如何让用户可编辑,搜索引擎营销方案,搭建小程序多少钱,建自己博客网站文章目录 深度学习Week16——数据增强 一、前言 二、我的环境 三、前期工作 1、配置环境 2、导入数据 2.1 加载数据 2.2 配置数据集 2.3 数据可视化 四、数据增强 五、增强方式 1、将其嵌入model中 2、在Dataset数据集中进行数据增强 六、训练模型 七、自定义增强函数 一、前言…文章目录 深度学习Week16——数据增强 一、前言 二、我的环境 三、前期工作 1、配置环境 2、导入数据 2.1 加载数据 2.2 配置数据集 2.3 数据可视化 四、数据增强 五、增强方式 1、将其嵌入model中 2、在Dataset数据集中进行数据增强 六、训练模型 七、自定义增强函数 一、前言 本文为365天深度学习训练营 中的学习记录博客 原作者K同学啊 | 接辅导、项目定制 本篇内容分为两个部分前面部分是学习K同学给的算法知识点以及复现后半部分是自己的拓展与未解决的问题 本期学习了数据增强函数并自己实现一个增强函数使用的数据集仍然是猫狗数据集。 二、我的环境 电脑系统Windows 10语言环境Python 3.8.0编译器Pycharm2023.2.3 深度学习环境TensorFlow 显卡及显存RTX 3060 8G 三、前期工作 1、配置环境 import matplotlib.pyplot as plt import numpy as np #隐藏警告 import warnings warnings.filterwarnings(ignore)from tensorflow.keras import layers import tensorflow as tf gpus tf.config.list_physical_devices(GPU)if gpus:tf.config.experimental.set_memory_growth(gpus[0], True) #设置GPU显存用量按需使用tf.config.set_visible_devices([gpus[0]],GPU)# 打印显卡信息确认GPU可用 print(gpus)输出 [PhysicalDevice(name/physical_device:GPU:0, device_typeGPU)]这一步与pytorch第一步类似我们在写神经网络程序前无论是选择pytorch还是tensorflow都应该配置好gpu环境如果有gpu的话 2、 导入数据 导入所有猫狗图片数据依次分别为训练集图片(train_images)、训练集标签(train_labels)、测试集图片(test_images)、测试集标签(test_labels)数据集来源于K同学啊 2.1 加载数据 data_dir /home/mw/input/dogcat3675/365-7-data img_height 224 img_width 224 batch_size 32train_ds tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split0.3,subsettraining,seed12,image_size(img_height, img_width),batch_sizebatch_size)使用image_dataset_from_directory方法将磁盘中的数据加载到tf.data.Dataset中 tf.keras.preprocessing.image_dataset_from_directory()会将文件夹中的数据加载到tf.data.Dataset中且加载的同时会打乱数据。 class_namesvalidation_split: 0和1之间的可选浮点数可保留一部分数据用于验证。subset: training或validation之一。仅在设置validation_split时使用。seed: 用于shuffle和转换的可选随机种子。batch_size: 数据批次的大小。默认值32image_size: 从磁盘读取数据后将其重新调整大小。默认256256。由于管道处理的图像批次必须具有相同的大小因此该参数必须提供。 输出 Found 3400 files belonging to 2 classes. Using 2380 files for training.由于原始的数据集里不包含测试集所以我们需要自己创建一个 val_batches tf.data.experimental.cardinality(val_ds) test_ds val_ds.take(val_batches // 5) val_ds val_ds.skip(val_batches // 5)print(Number of validation batches: %d % tf.data.experimental.cardinality(val_ds)) print(Number of test batches: %d % tf.data.experimental.cardinality(test_ds))Number of validation batches: 60 Number of test batches: 15我们可以通过class_names输出数据集的标签。标签将按字母顺序对应于目录名称。 class_names train_ds.class_names print(class_names)[‘cat’, ‘dog’] 2.2 配置数据集 AUTOTUNE tf.data.AUTOTUNEdef preprocess_image(image,label):return (image/255.0,label)# 归一化处理 train_ds train_ds.map(preprocess_image, num_parallel_callsAUTOTUNE) val_ds val_ds.map(preprocess_image, num_parallel_callsAUTOTUNE)train_ds train_ds.cache().shuffle(1000).prefetch(buffer_sizeAUTOTUNE) val_ds val_ds.cache().prefetch(buffer_sizeAUTOTUNE)2.3 数据可视化 plt.figure(figsize(15, 10)) # 图形的宽为15高为10for images, labels in train_ds.take(1):for i in range(8):ax plt.subplot(5, 8, i 1) plt.imshow(images[i])plt.title(class_names[labels[i]])plt.axis(off)四 、数据增强 使用下面两个函数来进行数据增强 tf.keras.layers.experimental.preprocessing.RandomFlip:水平和垂直随机翻转每个图像。tf.keras.layers.experimental.preprocessing.RandomRotation:随机旋转每个图像 data_augmentation tf.keras.Sequential([tf.keras.layers.experimental.preprocessing.RandomFlip(horizontal_and_vertical),tf.keras.layers.experimental.preprocessing.RandomRotation(0.3), ])第一个层表示进行随机的水平和垂直翻转而第二个层表示按照0.3的弧度值进行随机旋转。 # Add the image to a batch. image tf.expand_dims(images[i], 0)plt.figure(figsize(8, 8)) for i in range(9):augmented_image data_augmentation(image)ax plt.subplot(3, 3, i 1)plt.imshow(augmented_image[0])plt.axis(off)五、增强方式 1. 将其嵌入model中 model tf.keras.Sequential([data_augmentation,layers.Conv2D(16, 3, paddingsame, activationrelu),layers.MaxPooling2D(),layers.Conv2D(32, 3, paddingsame, activationrelu),layers.MaxPooling2D(),layers.Conv2D(64, 3, paddingsame, activationrelu),layers.MaxPooling2D(),layers.Flatten(),layers.Dense(128, activationrelu),layers.Dense(len(class_names)) ])Epoch 1/20 43/43 [] - 18s 103ms/step - loss: 1.2824 - accuracy: 0.5495 - val_loss: 0.4272 - val_accuracy: 0.8941 Epoch 2/20 43/43 [] - 3s 55ms/step - loss: 0.3326 - accuracy: 0.8815 - val_loss: 0.1882 - val_accuracy: 0.9309 Epoch 3/20 43/43 [] - 3s 54ms/step - loss: 0.1614 - accuracy: 0.9488 - val_loss: 0.1493 - val_accuracy: 0.9412 Epoch 4/20 43/43 [] - 2s 54ms/step - loss: 0.1215 - accuracy: 0.9557 - val_loss: 0.0950 - val_accuracy: 0.9721 Epoch 5/20 43/43 [] - 3s 54ms/step - loss: 0.0906 - accuracy: 0.9666 - val_loss: 0.0791 - val_accuracy: 0.9691 Epoch 6/20 43/43 [] - 3s 56ms/step - loss: 0.0614 - accuracy: 0.9768 - val_loss: 0.1131 - val_accuracy: 0.9559 Epoch 7/20 43/43 [] - 3s 55ms/step - loss: 0.0603 - accuracy: 0.9807 - val_loss: 0.0692 - val_accuracy: 0.9794 Epoch 8/20 43/43 [] - 3s 55ms/step - loss: 0.0577 - accuracy: 0.9793 - val_loss: 0.0609 - val_accuracy: 0.9779 Epoch 9/20 43/43 [] - 3s 55ms/step - loss: 0.0511 - accuracy: 0.9825 - val_loss: 0.0546 - val_accuracy: 0.9779 Epoch 10/20 43/43 [] - 3s 55ms/step - loss: 0.0462 - accuracy: 0.9871 - val_loss: 0.0628 - val_accuracy: 0.9765 Epoch 11/20 43/43 [] - 3s 55ms/step - loss: 0.0327 - accuracy: 0.9895 - val_loss: 0.0790 - val_accuracy: 0.9721 Epoch 12/20 43/43 [] - 3s 55ms/step - loss: 0.0242 - accuracy: 0.9938 - val_loss: 0.0580 - val_accuracy: 0.9794 Epoch 13/20 43/43 [] - 3s 55ms/step - loss: 0.0354 - accuracy: 0.9907 - val_loss: 0.0797 - val_accuracy: 0.9735 Epoch 14/20 43/43 [] - 3s 55ms/step - loss: 0.0276 - accuracy: 0.9900 - val_loss: 0.0810 - val_accuracy: 0.9691 Epoch 15/20 43/43 [] - 3s 56ms/step - loss: 0.0243 - accuracy: 0.9931 - val_loss: 0.1063 - val_accuracy: 0.9676 Epoch 16/20 43/43 [] - 3s 56ms/step - loss: 0.0253 - accuracy: 0.9914 - val_loss: 0.1142 - val_accuracy: 0.9721 Epoch 17/20 43/43 [] - 3s 56ms/step - loss: 0.0205 - accuracy: 0.9937 - val_loss: 0.0726 - val_accuracy: 0.9706 Epoch 18/20 43/43 [] - 3s 56ms/step - loss: 0.0154 - accuracy: 0.9948 - val_loss: 0.0741 - val_accuracy: 0.9765 Epoch 19/20 43/43 [] - 3s 56ms/step - loss: 0.0155 - accuracy: 0.9966 - val_loss: 0.0870 - val_accuracy: 0.9721 Epoch 20/20 43/43 [] - 3s 55ms/step - loss: 0.0259 - accuracy: 0.9907 - val_loss: 0.1194 - val_accuracy: 0.9721这样做的好处是 数据增强这块的工作可以得到GPU的加速如果你使用了GPU训练的话 注意只有在模型训练时Model.fit才会进行增强在模型评估(Model.evaluate)以及预测(Model.predict)时并不会进行增强操作。 2. 在Dataset数据集中进行数据增强 batch_size 32 AUTOTUNE tf.data.AUTOTUNEdef prepare(ds):ds ds.map(lambda x, y: (data_augmentation(x, trainingTrue), y), num_parallel_callsAUTOTUNE)return dsmodel tf.keras.Sequential([layers.Conv2D(16, 3, paddingsame, activationrelu),layers.MaxPooling2D(),layers.Conv2D(32, 3, paddingsame, activationrelu),layers.MaxPooling2D(),layers.Conv2D(64, 3, paddingsame, activationrelu),layers.MaxPooling2D(),layers.Flatten(),layers.Dense(128, activationrelu),layers.Dense(len(class_names)) ])Epoch 1/20 75/75 [] - 11s 133ms/step - loss: 0.8828 - accuracy: 0.7113 - val_loss: 0.1488 - val_accuracy: 0.9447 Epoch 2/20 75/75 [] - 2s 33ms/step - loss: 0.1796 - accuracy: 0.9317 - val_loss: 0.0969 - val_accuracy: 0.9658 Epoch 3/20 75/75 [] - 2s 33ms/step - loss: 0.0999 - accuracy: 0.9655 - val_loss: 0.0362 - val_accuracy: 0.9879 Epoch 4/20 75/75 [] - 2s 33ms/step - loss: 0.0566 - accuracy: 0.9810 - val_loss: 0.0448 - val_accuracy: 0.9853 Epoch 5/20 75/75 [] - 2s 33ms/step - loss: 0.0426 - accuracy: 0.9807 - val_loss: 0.0142 - val_accuracy: 0.9937 Epoch 6/20 75/75 [] - 2s 33ms/step - loss: 0.0149 - accuracy: 0.9944 - val_loss: 0.0052 - val_accuracy: 0.9989 Epoch 7/20 75/75 [] - 2s 33ms/step - loss: 0.0068 - accuracy: 0.9974 - val_loss: 7.9693e-04 - val_accuracy: 1.0000 Epoch 8/20 75/75 [] - 2s 33ms/step - loss: 0.0015 - accuracy: 1.0000 - val_loss: 4.8532e-04 - val_accuracy: 1.0000 Epoch 9/20 75/75 [] - 2s 33ms/step - loss: 4.5804e-04 - accuracy: 1.0000 - val_loss: 1.9160e-04 - val_accuracy: 1.0000 Epoch 10/20 75/75 [] - 2s 33ms/step - loss: 1.7624e-04 - accuracy: 1.0000 - val_loss: 1.1390e-04 - val_accuracy: 1.0000 Epoch 11/20 75/75 [] - 2s 33ms/step - loss: 1.1646e-04 - accuracy: 1.0000 - val_loss: 8.7005e-05 - val_accuracy: 1.0000 Epoch 12/20 75/75 [] - 2s 33ms/step - loss: 9.0645e-05 - accuracy: 1.0000 - val_loss: 7.1111e-05 - val_accuracy: 1.0000 Epoch 13/20 75/75 [] - 2s 33ms/step - loss: 7.4695e-05 - accuracy: 1.0000 - val_loss: 5.9888e-05 - val_accuracy: 1.0000 Epoch 14/20 75/75 [] - 2s 33ms/step - loss: 6.3227e-05 - accuracy: 1.0000 - val_loss: 5.1448e-05 - val_accuracy: 1.0000 Epoch 15/20 75/75 [] - 2s 33ms/step - loss: 5.4484e-05 - accuracy: 1.0000 - val_loss: 4.4721e-05 - val_accuracy: 1.0000 Epoch 16/20 75/75 [] - 2s 33ms/step - loss: 4.7525e-05 - accuracy: 1.0000 - val_loss: 3.9201e-05 - val_accuracy: 1.0000 Epoch 17/20 75/75 [] - 2s 33ms/step - loss: 4.1816e-05 - accuracy: 1.0000 - val_loss: 3.4528e-05 - val_accuracy: 1.0000 Epoch 18/20 75/75 [] - 2s 33ms/step - loss: 3.7006e-05 - accuracy: 1.0000 - val_loss: 3.0541e-05 - val_accuracy: 1.0000 Epoch 19/20 75/75 [] - 2s 33ms/step - loss: 3.2878e-05 - accuracy: 1.0000 - val_loss: 2.7116e-05 - val_accuracy: 1.0000 Epoch 20/20 75/75 [] - 2s 33ms/step - loss: 2.9274e-05 - accuracy: 1.0000 - val_loss: 2.4160e-05 - val_accuracy: 1.0000六、训练模型 model.compile(optimizeradam,losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsTrue),metrics[accuracy])epochs20 history model.fit(train_ds,validation_dataval_ds,epochsepochs )loss, acc model.evaluate(test_ds) print(Accuracy, acc)使用方法一 15/15 [] - 1s 58ms/step - loss: 0.0984 - accuracy: 0.9646 Accuracy 0.9645833373069763使用方法二 15/15 [] - 1s 58ms/step - loss: 2.7453e-05 - accuracy: 1.0000 Accuracy 1.0七、自定义增强函数 import random def aug_img(image):seed random.randint(0, 10000) # 随机种子# 随机亮度image tf.image.stateless_random_brightness(image, max_delta0.2, seed[seed, 0])# 随机对比度image tf.image.stateless_random_contrast(image, lower0.8, upper1.2, seed[seed, 1])# 随机饱和度image tf.image.stateless_random_saturation(image, lower0.8, upper1.2, seed[seed, 2])# 随机色调image tf.image.stateless_random_hue(image, max_delta0.2, seed[seed, 3])# 随机翻转水平和垂直image tf.image.stateless_random_flip_left_right(image, seed[seed, 4])image tf.image.stateless_random_flip_up_down(image, seed[seed, 5])# 随机旋转image tf.image.rot90(image, krandom.randint(0, 3)) # 旋转0, 90, 180, 270度return imageimage tf.expand_dims(images[3]*255, 0) print(Min and max pixel values:, image.numpy().min(), image.numpy().max())Min and max pixel values: 2.4591687 241.47968plt.figure(figsize(8, 8)) for i in range(9):augmented_image aug_img(image)ax plt.subplot(3, 3, i 1)plt.imshow(augmented_image[0].numpy().astype(uint8))plt.axis(off)然后我们使用了第二种增强方法以下为他的结果 15/15 [] - 1s 57ms/step - loss: 0.1294 - accuracy: 0.9604 Accuracy 0.9604166746139526
http://www.tj-hxxt.cn/news/134107.html

相关文章:

  • 南山做网站教程四川省建设厅招标网站
  • 文明网站建设方案榆林市建设局网站
  • 开封市建设局网站wordpress tag调用文章
  • 百度seo优化网站wordpress文章位置
  • 上海奉贤网站建设建设工程法律法规
  • 动效网站建筑人才网官网96877
  • 宣传电脑的网站开发百度seo排名优化
  • 站长工具高清有吗网络组建与维护实训报告
  • 秦皇岛哪里做网站设计用哪些网站有哪些
  • 长沙seo网站优化天津推广平台
  • 百度怎么优化网站排名辽宁高速公路建设局网站
  • 做的好的自驾游网站西安网站seo报价
  • 如何创建一个国外免费网站电商毕业设计作品
  • 公司网站上线流程淘宝关键词优化工具
  • 这样可以做网站网页制作与网站建设技术详解
  • 织梦手机端网站怎么做广告设计专业可以考什么证
  • 淘宝 客要推广网站怎么做天津河东做网站哪家好
  • 海南公司网站建设如何利用网站开发国外客户
  • 结婚网站模版卖产品怎么做网站
  • 四川住房和城乡建设厅进不去网站网站备份数据库
  • 网站排名软件下载贵阳手机网站建设
  • 网站目录访问浏览器下载安装
  • 深圳自己的网站建设装修平台是怎么找客户的
  • 2014网站设计风格全国知名品牌策划公司
  • 建设网站的工作流程app开发公司怎么查看
  • 域名注册之后怎么进行网站建设wordpress 未备案 访问
  • 专业装修设计网站网站qq在线状态
  • 网站后台导航随意添加典当行网站模板
  • 平远县建设工程交易中心网站微信模板图片
  • 网页界面设计ppt杭州seo优化