阿里巴巴 网站设计,wordpress侧边栏加图片,南宁法拍房源信息,做ppt的模板的网站有哪些文章目录 前期工作1. 设置GPU#xff08;如果使用的是CPU可以忽略这步#xff09;我的环境#xff1a; 2. 导入数据3.归一化4.可视化 二、构建CNN网络模型三、编译模型四、训练模型五、预测六、模型评估 前期工作
1. 设置GPU#xff08;如果使用的是CPU可以忽略这步#… 文章目录 前期工作1. 设置GPU如果使用的是CPU可以忽略这步我的环境 2. 导入数据3.归一化4.可视化 二、构建CNN网络模型三、编译模型四、训练模型五、预测六、模型评估 前期工作
1. 设置GPU如果使用的是CPU可以忽略这步
我的环境
语言环境Python3.6.5编译器jupyter notebook深度学习环境TensorFlow2.4.1
import tensorflow as tf
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)2. 导入数据
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import matplotlib.pyplot as plt(train_images, train_labels), (test_images, test_labels) datasets.cifar10.load_data()3.归一化
# 将像素的值标准化至0到1的区间内。
train_images, test_images train_images / 255.0, test_images / 255.0train_images.shape,test_images.shape,train_labels.shape,test_labels.shape4.可视化
class_names [airplane, automobile, bird, cat, deer,dog, frog, horse, ship, truck]plt.figure(figsize(20,10))
for i in range(20):plt.subplot(5,10,i1)plt.xticks([])plt.yticks([])plt.grid(False)plt.imshow(train_images[i], cmapplt.cm.binary)plt.xlabel(class_names[train_labels[i][0]])
plt.show()二、构建CNN网络模型
model models.Sequential([layers.Conv2D(32, (3, 3), activationrelu, input_shape(32, 32, 3)), #卷积层1卷积核3*3layers.MaxPooling2D((2, 2)), #池化层12*2采样layers.Conv2D(64, (3, 3), activationrelu), #卷积层2卷积核3*3layers.MaxPooling2D((2, 2)), #池化层22*2采样layers.Conv2D(64, (3, 3), activationrelu), #卷积层3卷积核3*3layers.Flatten(), #Flatten层连接卷积层与全连接层layers.Dense(64, activationrelu), #全连接层特征进一步提取layers.Dense(10) #输出层输出预期结果
])model.summary() # 打印网络结构Model: sequential
_________________________________________________________________
Layer (type) Output Shape Param # conv2d (Conv2D) (None, 30, 30, 32) 896
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 15, 15, 32) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 13, 13, 64) 18496
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 6, 6, 64) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 4, 4, 64) 36928
_________________________________________________________________
flatten (Flatten) (None, 1024) 0
_________________________________________________________________
dense (Dense) (None, 64) 65600
_________________________________________________________________
dense_1 (Dense) (None, 10) 650 Total params: 122,570
Trainable params: 122,570
Non-trainable params: 0
_________________________________________________________________三、编译模型
model.compile(optimizeradam,losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsTrue),metrics[accuracy])四、训练模型
history model.fit(train_images, train_labels, epochs10, validation_data(test_images, test_labels))Epoch 1/10
1563/1563 [] - 9s 4ms/step - loss: 1.7862 - accuracy: 0.3390 - val_loss: 1.2697 - val_accuracy: 0.5406
Epoch 2/10
1563/1563 [] - 5s 3ms/step - loss: 1.2270 - accuracy: 0.5595 - val_loss: 1.0731 - val_accuracy: 0.6167
Epoch 3/10
1563/1563 [] - 5s 3ms/step - loss: 1.0355 - accuracy: 0.6337 - val_loss: 0.9678 - val_accuracy: 0.6610
Epoch 4/10
1563/1563 [] - 5s 3ms/step - loss: 0.9221 - accuracy: 0.6727 - val_loss: 0.9589 - val_accuracy: 0.6648
Epoch 5/10
1563/1563 [] - 5s 3ms/step - loss: 0.8474 - accuracy: 0.7022 - val_loss: 0.8962 - val_accuracy: 0.6853
Epoch 6/10
1563/1563 [] - 5s 3ms/step - loss: 0.7814 - accuracy: 0.7292 - val_loss: 0.9124 - val_accuracy: 0.6873
Epoch 7/10
1563/1563 [] - 5s 3ms/step - loss: 0.7398 - accuracy: 0.7398 - val_loss: 0.8924 - val_accuracy: 0.6929
Epoch 8/10
1563/1563 [] - 5s 3ms/step - loss: 0.7008 - accuracy: 0.7542 - val_loss: 0.9809 - val_accuracy: 0.6854
Epoch 9/10
1563/1563 [] - 5s 3ms/step - loss: 0.6474 - accuracy: 0.7732 - val_loss: 0.8549 - val_accuracy: 0.7137
Epoch 10/10
1563/1563 [] - 5s 3ms/step - loss: 0.6041 - accuracy: 0.7889 - val_loss: 0.8909 - val_accuracy: 0.7046五、预测
通过模型进行预测得到的是每一个类别的概率数字越大该图片为该类别的可能性越大
plt.imshow(test_images[10])输出测试集中第一张图片的预测结果
import numpy as nppre model.predict(test_images)
print(class_names[np.argmax(pre[10])])313/313 [] - 1s 3ms/step
airplane六、模型评估
import matplotlib.pyplot as pltplt.plot(history.history[accuracy], labelaccuracy)
plt.plot(history.history[val_accuracy], label val_accuracy)
plt.xlabel(Epoch)
plt.ylabel(Accuracy)
plt.ylim([0.5, 1])
plt.legend(loclower right)
plt.show()test_loss, test_acc model.evaluate(test_images, test_labels, verbose2)print(test_acc)0.7166000008583069