tensorflow学习笔记(2)

21年9月8日——NN

import tensorflow as tf
print(tf.__version__)

mnist = tf.keras.datasets.fashion_mnist

(training_images, training_labels), (test_images, test_labels) = mnist.load_data()

class myCallback(tf.keras.callbacks.Callback):
  def on_epoch_end(self, epoch, logs = {}):
    if(logs.get('loss') < 0.4):
      print("\nLoss is low so cancelling training!")
      self.model.stop_training = True

callbacks = myCallback()

import matplotlib.pyplot as plt
plt.imshow(training_images[1])
print(training_labels[1])
print(training_images[1])

training_images = training_images / 255.0
test_images = test_images / 255.0

model = tf.keras.models.Sequential([
     tf.keras.layers.Flatten(input_shape = (28, 28)),
     tf.keras.layers.Dense(128, activation = tf.nn.relu),
     tf.keras.layers.Dense(10, activation = tf.nn.softmax)]
)

model.compile(optimizer = tf.optimizers.Adam(),
              loss = 'sparse_categorical_crossentropy')
model.fit(training_images, training_labels, epochs = 5, callbacks = [callbacks])

model.evaluate(test_images, test_labels)

fashion_mnist是一个数据集,其中包含70000个样本,10个种类的衣物。
class myCallback这个类表明当loss低于0.4就停止(但是这一轮仍会做完)

training_images = training_images / 255.0
test_images = test_images / 255.0

这个除以255目的是归一化,神经网络只处理0-1的数据。

model = tf.keras.models.Sequential([
     tf.keras.layers.Flatten(input_shape = (28, 28)),
     tf.keras.layers.Dense(128, activation = tf.nn.relu),
     tf.keras.layers.Dense(10, activation = tf.nn.softmax)]
)

Flatten扁平化, 输入层就是扁平化后的28*28个数据;隐层就是128个神经元,其中激活函数用的relu;输出层只有10个输出,因为这个数据集里只有10个种类,激活函数用的是softmax(常用于多分类问题)。

然后剩下的就跟前面是一样的了。

代码:https://colab.research.google.com/drive/1kisNiXhs0-zAnQuAEavCDRtbZKsi3ubc#scrollTo=L9iCc09qDuW2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值