南宁网站建设服务商前海网站建设
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:18
当前位置: 首页 > news >正文
南宁网站建设服务商,前海网站建设,网站装修怎么做,岳阳做网站公司文章目录 前期工作1. 设置GPU#xff08;如果使用的是CPU可以忽略这步#xff09;我的环境#xff1a; 2. 导入数据3. 查看数据 二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集 三、构建CNN网络四、编译五、训练模型六、模型评估 前期工作
设置GP… 文章目录 前期工作1. 设置GPU如果使用的是CPU可以忽略这步我的环境 2. 导入数据3. 查看数据 二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集 三、构建CNN网络四、编译五、训练模型六、模型评估 前期工作
设置GPU如果使用的是CPU可以忽略这步 我的环境 语言环境Python3.6.5编译器jupyter notebook深度学习环境TensorFlow2.4.1 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. 导入数据 import matplotlib.pyplot as plt import os,PIL# 设置随机种子尽可能使结果可以重现 import numpy as np np.random.seed(1)# 设置随机种子尽可能使结果可以重现 import tensorflow as tf tf.random.set_seed(1)from tensorflow import keras from tensorflow.keras import layers,modelsimport pathlibdata_dir weather_photos/ data_dir pathlib.Path(data_dir)3. 查看数据 数据集一共分为cloudy、rain、shine、sunrise四类分别存放于weather_photos文件夹中以各自名字命名的子文件夹中。 image_count len(list(data_dir.glob(/.jpg)))print(图片总数为,image_count)roses list(data_dir.glob(sunrise/*.jpg)) PIL.Image.open(str(roses[0]))二、数据预处理
加载数据 使用image_dataset_from_directory方法将磁盘中的数据加载到tf.data.Dataset中 batch_size 32 img_height 180 img_width 180train_ds tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split0.2,subsettraining,seed123,image_size(img_height, img_width),batch_sizebatch_size)Found 1125 files belonging to 4 classes. Using 900 files for training.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)Found 1125 files belonging to 4 classes. Using 225 files for validation.我们可以通过class_names输出数据集的标签。标签将按字母顺序对应于目录名称。 class_names train_ds.class_names print(class_names)[cloudy, rain, shine, sunrise]2. 可视化数据 plt.figure(figsize(20, 10))for images, labels in train_ds.take(1):for i in range(20):ax plt.subplot(5, 10, i 1)plt.imshow(images[i].numpy().astype(uint8))plt.title(class_names[labels[i]])plt.axis(off)3. 再次检查数据 for image_batch, labels_batch in train_ds:print(image_batch.shape)print(labels_batch.shape)break(32, 180, 180, 3) (32,)Image_batch是形状的张量32,180,180,3。这是一批形状180x180x3的32张图片最后一维指的是彩色通道RGB。Label_batch是形状32的张量这些标签对应32张图片
配置数据集 AUTOTUNE tf.data.AUTOTUNEtrain_ds train_ds.cache().shuffle(1000).prefetch(buffer_sizeAUTOTUNE) val_ds val_ds.cache().prefetch(buffer_sizeAUTOTUNE)三、构建CNN网络 卷积神经网络CNN的输入是张量 (Tensor) 形式的 (image_height, image_width, color_channels)包含了图像高度、宽度及颜色信息。不需要输入batch size。color_channels 为 (R,G,B) 分别对应 RGB 的三个颜色通道color channel。在此示例中我们的 CNN 输入fashion_mnist 数据集中的图片形状是 (28, 28, 1)即灰度图像。我们需要在声明第一层时将形状赋值给参数input_shape。 num_classes 4model models.Sequential([layers.experimental.preprocessing.Rescaling(1./255, input_shape(img_height, img_width, 3)),layers.Conv2D(16, (3, 3), activationrelu, input_shape(img_height, img_width, 3)), # 卷积层1卷积核3*3 layers.AveragePooling2D((2, 2)), # 池化层12*2采样layers.Conv2D(32, (3, 3), activationrelu), # 卷积层2卷积核3*3layers.AveragePooling2D((2, 2)), # 池化层22*2采样layers.Conv2D(64, (3, 3), activationrelu), # 卷积层3卷积核3*3layers.Dropout(0.3), layers.Flatten(), # Flatten层连接卷积层与全连接层layers.Dense(128, activationrelu), # 全连接层特征进一步提取layers.Dense(num_classes) # 输出层输出预期结果 ])model.summary() # 打印网络结构Model: sequential
Layer (type) Output Shape Param # rescaling (Rescaling) (None, 180, 180, 3) 0
conv2d (Conv2D) (None, 178, 178, 16) 448
average_pooling2d (AveragePo (None, 89, 89, 16) 0
conv2d_1 (Conv2D) (None, 87, 87, 32) 4640
average_pooling2d_1 (Average (None, 43, 43, 32) 0
conv2d_2 (Conv2D) (None, 41, 41, 64) 18496
dropout (Dropout) (None, 41, 41, 64) 0
flatten (Flatten) (None, 107584) 0
dense (Dense) (None, 128) 13770880
dense_1 (Dense) (None, 5) 645 Total params: 13,795,109 Trainable params: 13,795,109 Non-trainable params: 0 _________________________________________________________________四、编译 在准备对模型进行训练之前还需要再对其进行一些设置。以下内容是在模型的编译步骤中添加的 损失函数loss用于衡量模型在训练期间的准确率。优化器optimizer决定模型如何根据其看到的数据和自身的损失函数进行更新。指标metrics用于监控训练和测试步骤。以下示例使用了准确率即被正确分类的图像的比率。
设置优化器
opt tf.keras.optimizers.Adam(learning_rate0.001) model.compile(optimizeropt,losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsTrue),metrics[accuracy])五、训练模型 epochs 10 history model.fit(train_ds,validation_dataval_ds,epochsepochs )Epoch 1⁄10 29⁄29 [] - 6s 58ms/step - loss: 1.5865 - accuracy: 0.4463 - val_loss: 0.5837 - val_accuracy: 0.7689 Epoch 2⁄10 29⁄29 [] - 0s 12ms/step - loss: 0.5289 - accuracy: 0.8295 - val_loss: 0.5405 - val_accuracy: 0.8133 Epoch 3⁄10 29⁄29 [] - 0s 12ms/step - loss: 0.2930 - accuracy: 0.8967 - val_loss: 0.5364 - val_accuracy: 0.8000 Epoch 4⁄10 29⁄29 [] - 0s 12ms/step - loss: 0.2742 - accuracy: 0.9074 - val_loss: 0.4034 - val_accuracy: 0.8267 Epoch 5⁄10 29⁄29 [] - 0s 11ms/step - loss: 0.1952 - accuracy: 0.9383 - val_loss: 0.3874 - val_accuracy: 0.8844 Epoch 6⁄10 29⁄29 [] - 0s 11ms/step - loss: 0.1592 - accuracy: 0.9468 - val_loss: 0.3680 - val_accuracy: 0.8756 Epoch 7⁄10 29⁄29 [] - 0s 12ms/step - loss: 0.0836 - accuracy: 0.9755 - val_loss: 0.3429 - val_accuracy: 0.8756 Epoch 8⁄10 29⁄29 [] - 0s 12ms/step - loss: 0.0943 - accuracy: 0.9692 - val_loss: 0.3836 - val_accuracy: 0.9067 Epoch 9⁄10 29⁄29 [] - 0s 12ms/step - loss: 0.0344 - accuracy: 0.9909 - val_loss: 0.3578 - val_accuracy: 0.9067 Epoch 10⁄10 29⁄29 [] - 0s 11ms/step - loss: 0.0950 - accuracy: 0.9708 - val_loss: 0.4710 - val_accuracy: 0.8356六、模型评估 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()
- 上一篇: 南宁网站建设超薄网络北京两学一做网站
- 下一篇: 南宁网站建设公司比优建站广东网站建设包括什么
相关文章
-
南宁网站建设超薄网络北京两学一做网站
南宁网站建设超薄网络北京两学一做网站
- 技术栈
- 2026年03月21日
-
南宁网站建设 超博网络做瓷砖在什么网站上找素材好
南宁网站建设 超博网络做瓷砖在什么网站上找素材好
- 技术栈
- 2026年03月21日
-
南宁网站定制开发wordpress中文支持
南宁网站定制开发wordpress中文支持
- 技术栈
- 2026年03月21日
-
南宁网站建设公司比优建站广东网站建设包括什么
南宁网站建设公司比优建站广东网站建设包括什么
- 技术栈
- 2026年03月21日
-
南宁网站建设免费推广乐客vr加盟费用要多少
南宁网站建设免费推广乐客vr加盟费用要多少
- 技术栈
- 2026年03月21日
-
南宁网站建设人才招聘高新区建网站外包
南宁网站建设人才招聘高新区建网站外包
- 技术栈
- 2026年03月21日
