本文介绍使用tensorflow keras的model,compile,fit等搭建多层神经网络。在代码中有注释,比较简单。
这里面有一点需要注意的是输出值y需要进行one_hot编码。因为搭建的神经网络的输出是10个神经元,如果不进行独热编码,网络不会收敛。
y_train = tf.cast(tf.one_hot(y_train,10), tf.int64)
下面是详细的代码:
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras import layers,optimizers
def load_data(path,number=10000,batch_size=500):
origin_folder = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/'
path = tf.keras.utils.get_file(
path,
origin=origin_folder + 'mnist.npz',
cache_dir='DataSet/',
cache_subdir=""
)
with np.load(path, allow_pickle=True) as f:
x_train, y_train = f['x_train'], f['y_train']
x_test, y_test = f['x_test']