BackBone--Lenet
2021-01-26 08:12
标签:loss one otl test fit cti shape roc img 划分验证集和测试集 显示数据集 数据归一化 构建lenet网络 编译网络 训练网络 可视化信息 模型测试 BackBone--Lenet 标签:loss one otl test fit cti shape roc img 原文地址:https://www.cnblogs.com/peiziming/p/13232441.htmlimport tensorflow as tf
(train_x,train_y),(test_x,test_y) = tf.keras.datasets.mnist.load_data()
valid_x = train_x[:5000]
valid_y = train_y[:5000]
train_x = train_x[5000:]
train_y = train_y[5000:]
import matplotlib.pyplot as plt
plt.figure(figsize=(12,5))
for i in range(10):
plt.subplot(2,5,i+1)
plt.imshow(train_x[i])
plt.xlabel(train_y[i])
plt.xticks([])
plt.yticks([])
plt.savefig(‘lenet-mnist‘)
plt.show()
from sklearn.preprocessing import StandardScaler
import numpy as np
scaler = StandardScaler()
train_x_scaled = scaler.fit_transform(train_x.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)
valid_x_scaled = scaler.fit_transform(valid_x.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)
test_x_scaled = scaler.fit_transform(test_x.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)
train_x = tf.reshape(train_x_scaled,(train_x_scaled.shape[0],train_x_scaled.shape[1],train_x_scaled.shape[2],1))
valid_x = tf.reshape(valid_x_scaled,(valid_x_scaled.shape[0],valid_x_scaled.shape[1],valid_x_scaled.shape[2],1))
test_x = tf.reshape(test_x_scaled,(test_x_scaled.shape[0],test_x_scaled.shape[1],test_x_scaled.shape[2],1))
model = keras.models.Sequential()
model.add(keras.layers.Conv2D(6,(5,5),activation=‘relu‘,input_shape = (28,28,1)))
model.add(keras.layers.MaxPool2D(2,2))
model.add(keras.layers.Conv2D(16,(5,5),activation=‘relu‘))
model.add(keras.layers.MaxPool2D(2,2))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(120,activation=‘relu‘))
model.add(keras.layers.Dense(84,activation=‘relu‘))
model.add(keras.layers.Dense(10,activation=‘sigmoid‘))
import os,sys
lenet_logdir = os.path.join(‘lenet_logdir‘)
out_model = os.path.join(lenet_logdir,‘lenet_mnist.h5‘)
callbacks = [keras.callbacks.TensorBoard(lenet_logdir),
keras.callbacks.ModelCheckpoint(lenet_logdir,save_best_only=True)]
model.compile(optimizer = ‘sgd‘,
loss = ‘sparse_categorical_crossentropy‘,
metrics = [‘accuracy‘])
history = model.fit(train_x,train_y,
epochs = 30,
validation_data = (valid_x,valid_y),
callbacks=callbacks)
import pandas as pd
pd.DataFrame(history.history).plot(figsize = (10,4))
plt.grid(True)
plt.gca().set_ylim(0,1)
plt.gca().set_xlim(0,5)
plt.show()
model.evaluate(test_x,test_y)
10000/10000 [==============================] - 1s 56us/sample - loss: 0.0352 - accuracy: 0.9899
[0.03522909182251751, 0.9899]