TensorFlow搭建模型方式总结

引言

TensorFlow提供了多种API,使得入门者和专家可以根据自己的需求选择不同的API搭建模型。

成都创新互联公司专注于张掖企业网站建设,成都响应式网站建设公司,商城网站定制开发。张掖网站建设公司,为张掖等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

基于Keras Sequential API搭建模型

Sequential适用于线性堆叠的方式搭建模型,即每层只有一个输入和输出。

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, x_test/255

# 使用Sequential搭建模型
# 方式一
model = tf.keras.models.Sequential([

# 加入CNN层(2D), 使用了3个卷积核, 卷积核的尺寸为3X3, 步长为1, 输入图像的维度为28X28X1
    tf.keras.layers.Conv2D(3, kernel_size=3, strides=1, input_shape=(28, 28, 1)),

# 加入激活函数
    tf.keras.layers.Activation('relu'),

# 加入2X2池化层, 步长为2
    tf.keras.layers.MaxPool2D(pool_size=2, strides=2),

# 把图像数据平铺
    tf.keras.layers.Flatten(),

# 加入全连接层, 设置神经元为128个, 设置relu激活函数
    tf.keras.layers.Dense(128, activation='relu'),

# 加入全连接层(输出层), 设置输出数量为10, 设置softmax激活函数
    tf.keras.layers.Dense(10, activation='softmax')
])

# 方式二
model2 = tf.keras.models.Sequential()
model2.add(tf.keras.layers.Conv2D(3, kernel_size=3, strides=1, input_shape=(28, 28, 1)))
model2.add(tf.keras.layers.Activation('relu'))
model2.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2))
model2.add(tf.keras.layers.Flatten())
model2.add(tf.keras.layers.Dense(128, activation='relu'))
model2.add(tf.keras.layers.Dense(10, activation='softmax'))

# 模型概览
model.summary()

"""
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 conv2d (Conv2D)             (None, 26, 26, 3)         30        

 activation (Activation)     (None, 26, 26, 3)         0         

 max_pooling2d (MaxPooling2D  (None, 13, 13, 3)        0         
 )                                                               

 flatten (Flatten)           (None, 507)               0         

 dense (Dense)               (None, 128)                    

 dense_1 (Dense)             (None, 10)                1290      

=================================================================
Total params: 66,344
Trainable params: 66,344
"""

# 编译 为模型加入优化器, 损失函数, 评估指标
model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy']
)

# 训练模型, 2个epoch, batch size为100
model.fit(x_train, y_train, epochs=2, batch_size=100)

网站栏目:TensorFlow搭建模型方式总结
文章网址:http://pwwzsj.com/article/dsogjhp.html