在我们使用tensorflow时,如果不能使用函数式api进行编程,那么一些复杂的神经网络结构就不会实现出来,只能使用简单的单向模型进行一层一层地堆叠。如果稍微复杂一点,遇到了Resnet这种带有残差模块的神经网络,那么用简单的神经网络堆叠的方式则不可能把这种网络堆叠出来。下面我们来使用函数式API来编写一个简单的全连接神经网络:
首先导包:
from tensorflow import keras import tensorflow as tf import pandas as pd import numpy as np import matplotlib.pyplot as plt
导入图片数据集:mnist
(train_image,train_label),(test_image,test_label)=tf.keras.datasets.fashion_mnist.load_data()
归一化:
train_image=train_image/255 test_image=test_image/255#进行数据的归一化,加快计算的进程
搭建全连接神经网络:
input=keras.Input(shape=(28,28)) x=keras.layers.Flatten()(input)#调用input x=keras.layers.Dense(32,activation="relu")(x) x=keras.layers.Dropout(0.5)(x)#一层一层的进行调用上一层的结果 output=keras.layers.Dense(10,activation="softmax")(x) model=keras.Model(inputs=input,outputs=output) model.summary()
输出:
Model: "model" _________________________________________________________________ Layer (type)