文章目录
- 一、导入包
- 二、下载Mnist数据
- 三、定义神经网络模型model
- 四、编译模型
- 五、设置Tensorboard
- 1. 定义Tensorboard调用的地址,.logs/代表模型训练之后生成的文件放到.logs文件夹(若无,自动创建),.logs文件夹与本python代码文件在同一文件下
- 2. .logs是用来保存被Tensorboard分析的日志文件的文件夹地址
- 3. 定义tb_callback,调用的函数是tf.keras.callbacks.TensorBoard,log_dir参数代表Tensorboard所分析日志文件的地址
- 4. 运行整个程序前(我的python代码文件的地址:D:\PyCharm\TF2.2_project\test),文件夹中没有.logs文件,如图所示。
- 5. 完整程序运行之后,会自动生成.logs文件夹,里面包括模型相关的信息,用于Tensorboard分析
- 五、训练模型(在pycharm中运行完整程序)
- 六、启动Tensorboard
- 七、完整代码
本文以 Mnist手写数字数据集为训练和测试用,同时全部使用 tensorboard默认参数,降低理解门槛。
软件版本:
PyCharm Community Edition 2020.3.2 x64
Anaconda 3
TensorFlow 2.2
一、导入包
import tensorflow as tf
二、下载Mnist数据
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
三、定义神经网络模型model
def create_model():
return tf.keras.models.Sequential([ # 在Sequential中搭建各种网络层
tf.keras.layers.Flatten(input_shape=(28, 28)), # 使用Flatten打平数据
tf.keras.layers.Dense(512, activation='relu'), # 建立第一个全连接层,神经元数量512个,激活函数relu
tf.keras.layers.Dropout(0.2), # 采用Dropout防止过拟合,丢弃率为0.2
tf.keras.layers.Dense(10, activation='softmax') # 建立第二个全连接层,神经元数量10个(代表10分类),激活函数softmax
])
四、编译模型
model = create_model()
model.compile(optimizer='adam', # 优化器optimizer选用adam
loss='sparse_categorical_crossentropy', # 损失函数loss选用sparse_categorical_crossentropy
metrics=['accuracy']) # 评价选用accuracy
五、设置Tensorboard
1. 定义Tensorboard调用的地址,.logs/代表模型训练之后生成的文件放到.logs文件夹(若无,自动创建),.logs文件夹与本python代码文件在同一文件下
2. .logs是用来保存被Tensorboard分析的日志文件的文件夹地址
3. 定义tb_callback,调用的函数是tf.keras.callbacks.TensorBoard,log_dir参数代表Tensorboard所分析日志文件的地址
log_dir = '.logs/'
tb_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir)
4. 运行整个程序前(我的python代码文件的地址:D:\PyCharm\TF2.2_project\test),文件夹中没有.logs文件,如图所示。
5. 完整程序运行之后,会自动生成.logs文件夹,里面包括模型相关的信息,用于Tensorboard分析
五、训练模型(在pycharm中运行完整程序)
model.fit(x=x_train,
y=y_train,
epochs=10, # 迭代次数10
validation_data=(x_test, y_test),
callbacks=[tb_callback]) # 回调函数调用上面定义好的tb_callback,通过回调函数调用tensorboard
六、启动Tensorboard
1. 打开Anaconda Prompt(Anaconda)
2. 输入tensorboard --logdir=D:\PyCharm\TF2.2_project\test.logs,其中logdir=后面的内容是上述新生成的.logs文件的地址,点击回车出现地址:http://localhost:6006/
tips:若出现报错,点此查看解决方案
3. 复制地址,通过谷歌浏览器打开,即可进入Tensorboard
七、完整代码
""" 安装Anaconda的时候,一般情况下Tensorboard会自动安装,所以建议安装Anaconda """
# 一、 导入包
import tensorflow as tf
# 二、 下载mnist数据集
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# 三、 定义神经网络模型model
def create_model():
return tf.keras.models.Sequential([ # 在Sequential中搭建各种网络层
tf.keras.layers.Flatten(input_shape=(28, 28)), # 使用Flatten打平数据
tf.keras.layers.Dense(512, activation='relu'), # 建立第一个全连接层,神经元数量512个,激活函数relu
tf.keras.layers.Dropout(0.2), # 采用Dropout防止过拟合,丢弃率为0.2
tf.keras.layers.Dense(10, activation='softmax') # 建立第二个全连接层,神经元数量10个(代表10分类),激活函数softmax
])
# 四、 编译模型
model = create_model()
model.compile(optimizer='adam', # 优化器optimizer选用adam
loss='sparse_categorical_crossentropy', # 损失函数loss选用sparse_categorical_crossentropy
metrics=['accuracy']) # 评价选用accuracy
""" _____设置Tensorboard_____ """
# 定义Tensorboard调用的地址,.logs/代表模型训练之后生成的文件放到.logs文件夹(若无,自动创建),.logs文件夹与本python代码文件在同一文件下
# .logs是用来保存被Tensorboard分析的日志文件的文件夹地址
log_dir = '.logs/'
# 定义tb_callback,调用的函数是tf.keras.callbacks.TensorBoard,log_dir参数代表Tensorboard所分析日志文件的地址
tb_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir)
# 五、 训练模型
model.fit(x=x_train,
y=y_train,
epochs=10, # 迭代次数10
validation_data=(x_test, y_test),
callbacks=[tb_callback]) # 回调函数调用上面定义好的tb_callback,通过回调函数调用tensorboard