TensorFlow2.0入门1-1 简单的手写字分类

TensorFlow2.0入门1-1 简单的手写字分类

内容总结自吴恩达TensorFlow2.0的课程

导入数据:
import tensorflow as tf
print(tf.__version__)
%matplotlib inline
读取数据集

没有数据集的可以点击下载。注意要下载在.keras\datasets\fashion-mnist目录下。

mnist = tf.keras.datasets.fashion_mnist
(training_images, training_labels), (test_images, test_labels) = mnist.load_data()
展示数据集
import matplotlib.pyplot as plt
plt.imshow(training_images[0])
print(training_labels[0])
print(training_images[0])

在这里插入图片描述
在这里插入图片描述

对数据进行标准化处理
training_images  = training_images / 255.0
test_images = test_images / 255.0
设计我们的模型

先把输入进行平铺,然后两个全连接层。

model = tf.keras.models.Sequential([tf.keras.layers.Flatten(), 
                                    tf.keras.layers.Dense(128, activation='relu'), 
                                    tf.keras.layers.Dense(10, activation='softmax')])
进行模型训练

使用adam优化,用交叉熵作为损失函数,用正确率作为指标。进行五次循环。

model.compile(optimizer = 'adam',
              loss = 'sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(training_images, training_labels, epochs=5)

在这里插入图片描述

进行模型评估
model.evaluate(test_images, test_labels)

在这里插入图片描述

让训练及时停止
import tensorflow as tf
print(tf.__version__)
# 自定义停止函数
class myCallback(tf.keras.callbacks.Callback):
    def on_epoch_end(self, epoch, logs={}):
        if(logs.get('loss')<0.4): # 得到现在的准确率
            print('达到60%z准确率')
            self.model.stop_training = True
callbacks = myCallback()
mnist = tf.keras.datasets.fashion_mnist
(training_images, training_labels), (test_images, test_labels) = mnist.load_data()
training_images = training_images / 255.0
test_images = test_images / 255.0
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512,activation='relu'),
    tf.keras.layers.Dense(10,activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
model.fit(training_images,training_labels, epochs=5, callbacks=[callbacks])

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值