TensorFlow提供了多种API,使得入门者和专家可以根据自己的需求选择不同的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)