使用Tensorflow2.0中keras版本模型训练小案例

import tensorflow as tf
import numpy as np


#一、构建模型
inputs = tf.keras.Input(shape=(32,))
x = tf.keras.layers.Dense(64, activation='relu')(inputs)
x = tf.keras.layers.Dense(64, activation='relu')(x)
predictions = tf.keras.layers.Dense(10)(x)

model = tf.keras.Model(inputs=inputs, outputs=predictions)#- inputs(模型输入)- output(模型输出)

model.compile(optimizer=tf.keras.optimizers.Adam(0.001),#优化器,也可以通过字符串标识符指定优化器,损失和指标(可写成optimizer='adam')
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True), #损失函数
              metrics=['accuracy'])#评估函数

#二、构建数据集
x_train = np.random.random((1000, 32))
y_train = np.random.randint(10, size=(1000, ))

x_val = np.random.random((200, 32))
y_val = np.random.randint(10, size=(200, ))

x_test = np.random.random((200, 32))
y_test = np.random.randint(10, size=(200, ))

# 三、模型训练
# model.fit(x_train, y_train,batch_size=32, epochs=5, validation_data=(x_val, y_val))
model.fit(x_train, y_train,batch_size=64, validation_split=0.2, epochs=1, steps_per_epoch=1)
'''
参数validation_split允许您自动保留部分训练数据以供验证。
例如,validation_split=0.2表示“使用20%的数据进行验证”。
但validation_split只能在使用Numpy数据进行训练时使用。
'''

# 四、模型验证(返回test loss和metrics)
print('\n#Evaluate on test data')
results = model.evaluate(x_test, y_test, batch_size=128)
print ('test loss, test acc:', results)

print('\n# Generate predictions for 3 samples')
predictions = model.predict(x_test[:3])
print('predictions shapes:', predictions.shape)

你可能感兴趣的:(TensorFlow,2.0,框架,keras,tensorflow,深度学习)