TensorFlow基础:初学者的第一个模型训练

  • Post author:
  • Post category:其他


这篇博客适合初学者了解模型训练是怎么一回事,用最简单的代码实现模型训练,但是你需要一点python的知识和一个你擅长的开发环境(比如:jupyter notebook)



总共需要下面几个步骤

  1. 导入包
  2. 引入数据
  3. 数据处理
  4. 创建模型
  5. 编译模型
  6. 传入数据并训练


导入包
import tensorflow as tf
from tensorflow.keras.layers import Dense, Flatten, Conv2D
from tensorflow.keras import Model
  • 没有安装tensorflow,出门右转,百度“tensorflow安装教程”,很简单的,建议pip安装
  • 建议TensorFlow 2.0以上


引入数据
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
               'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
  • 这里直接用的TensorFlow内置的数据集,方便教程
  • 大多时候数据集,可以在本地,直接图片的形式或者cvs格式
  • class_names:在训练中没有太大的用处,只是方便我们纠正数据是否正确,因为计算机只认识0,1,2,3 这样的类别


数据处理
train_images = train_images / 255.0
test_images = test_images / 255.0
  • 这里只是对数据进行了归一化处理,图片像素值变为了(0,1)之间,方便计算机计算,因为数据太大容易出现很多问题
  • 还有很多其他的数据处理方式,比如灰度处理、去噪音、旋转、剪切等


创建模型
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10)
])
  • 这里是用了简单的全连接,参数量只有10万左右,在本地CPU也能跑起来,正常的参数量都在几千万左右,CPU很难跑起来,都需要GPU才行


模型编译
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])
  • 优化器选的adam,新手一般都选adam,另外告诉喜欢用SGD(随机梯度下降法)
  • 损失函数:SparseCategoricalCrossentropy,当分类用0,1,2,3……9,这样的分类时候,就选SparseCategoricalCrossentropy,其他的方式可以看关于我的优化器的博客


训练模型
model.fit(train_images, train_labels, epochs=10, validation_data = (test_images, test_labels))
  • epochs:表示训练循环10次
  • 编译模型中度量模型好坏的标准,我选的accuracy(准确度),所有这里每次循环结束会打印出测试数据集中的准确度
  • 下面是我跑完的截图,不到一分钟时间,准确度在88%左右

    在这里插入图片描述



总结

大家一定要自己动手试试,不懂的就百度,有问题可以在评论区提问,我尽量在第一时间回复大家,和大家一起进步



版权声明:本文为yuanyuneixin1原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。