深度学习笔记_Keras六步法搭建网络

深度学习笔记_Keras六步法搭建网络

Keras六步法搭建网络,以MNIST数据集为例

一、import加载库

加载所需要的库,使用tensorflow库

import tensorflow as tf

二、设置训练集、测试集

设置所需要的训练集和测试集
Mnist数据集:共有7万张图片。其中6万张用于训练神经网络,1万张用于测试神经网络。
每张图片是一个28 _28像素点的0~9的手写数字图片。

深度学习笔记_Keras六步法搭建网络
标签即对应数字
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

三、搭建神经网络

拉直层:tf.keras.layers.Flatten()
全连接层:tf.keras.layers.Dense(神经元个数,activation=”激活函数”,kernel_regularizer=正则化方式)
卷积层:tf.keras.layers.Conv2D(fliters=卷积核个数,kernel_size=卷积核尺寸,strides=卷积步长,padding=”valid”or “same”)

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

四、配置神经网络

在这里设置神经网络的优化器、损失函数及评价标准

model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=['sparse_categorical_accuracy'])

五、执行训练

model.fit(x_train, y_train, batch_size=32, epochs=5, validation_data=(x_test, y_test), validation_freq=1 )

六、打印网络结构及参数

model.summary()

深度学习笔记_Keras六步法搭建网络

代码

import tensorflow as tf

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 = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',

              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),

              metrics=['sparse_categorical_accuracy'])

model.fit(x_train, y_train, batch_size=32, epochs=5, validation_data=(x_test, y_test), validation_freq=1 )

model.summary()

使用class方法搭建网络

class MnistModel(Model):
    def __init__(self):
        super(MnistModel, self).__init__()
        self.flatten = Flatten()
        self.d1 = Dense(128, activation='relu')
        self.d2 = Dense(10, activation='softmax')

    def call(self, x):
        x = self.flatten(x)
        x = self.d1(x)
        y = self.d2(x)
        return y

model = MnistModel()

学习课程:北京大学人工智能实践-TensorFlow2.0

Original: https://blog.csdn.net/weixin_51205206/article/details/119189196
Author: Welcome_Back
Title: 深度学习笔记_Keras六步法搭建网络

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/521266/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球