Keras 是一个用于构建和训练深度学习模型的高阶 API。它可用于快速设计原型、高级研究和生产。
import tensorflow as tffrom tensorflow.keras import layersprint(tf.__version__)print(tf.keras.__version__)1.2
.3.4.
序列模型各层之间是依次顺序的线性关系,模型结构通过一个列表来制定
model = tf.keras.Sequential()model.add(layers.Dense(32, activation='relu'))model.add(layers.Dense(32,
activation='relu'))model.add(layers.Dense(10, activation='softmax'))1.2.3.4.
tf.keras.layers中网络配置
layers.Dense(32, activation='sigmoid')layers.Dense(32, activation=tf.sigmoid)layers.Dense(32,
kernel_initializer='orthogonal')layers.Dense(32, kernel_initializer=tf.keras.initializers
.glorot_normal)layers.Dense(32, kernel_regularizer=tf.keras.regularizers.l2(0.01))layers
.Dense(32, kernel_regularizer=tf.keras.regularizers.l1(0.01))1.2.3.4.5.6.
model.compile(optimizer=tf.keras.optimizers.Adam(0.001),
loss=tf.keras.losses.categorical_crossentropy,
metrics=[tf.keras.metrics.categorical_accuracy])
# Configure a model for mean-squared error regression.model
.compile(optimizer=tf.train.AdamOptimizer(0.01), loss='mse',
# mean squared error metrics=['mae'])
# mean absolute error# Configure a model for categorical classification.model
.compile(optimizer=tf.train.RMSPropOptimizer(0.01),
loss=keras.losses.categorical_crossentropy,
metrics=[keras.metrics.categorical_accuracy])1.2.3.4.5.6.7.8.9.10.11.12.13.
参数说明:
import numpy as nptrain_x = np.random.random((1000, 72))train_y = np.random
.random((1000, 10))val_x = np.random.random((200, 72))val_y = np
.random.random((200, 10))model.fit(train_x, train_y, epochs=10,
batch_size=100, validation_data=(val_x, val_y))1.2.3.4.5.6.7.8.9.10.
fit参数说明:
dataset = tf.data.Dataset.from_tensor_slices((train_x, train_y))dataset = dataset
.batch(32)dataset = dataset.repeat()val_dataset = tf.data.Dataset
.from_tensor_slices((val_x, val_y))val_dataset = val_dataset
.batch(32)val_dataset = val_dataset.repeat()model.fit(dataset,
epochs=10, steps_per_epoch=30, validation_data=val_dataset, validation_steps=3)1.2.3.4.5.6.7.8.9.
这里,fit方法使用steps_per_epoch参数,这是模型在移动到下一个epoch之前运行的训练步数。
由于数据集生成批量数据,因此此代码段不需要batch_size。
这里的validation_data也按实际需要赋值,可以不加。
test_x = np.random.random((1000, 72))test_y = np.random
.random((1000, 10))model.evaluate(test_x, test_y, batch_size=32)test_data = tf
.data.Dataset.from_tensor_slices((test_x, test_y))test_data = test_data.batch(32)
.repeat()model.evaluate(test_data, steps=30)# predictresult = model.predict(test_x,
batch_size=32)print(result)1.2.3.4.5.6.7.8.9.
四、创建一个最简单的模型并训练、预测
import tensorflow as tfimport numpy as npfrom tensorflow import kerasmodel = tf.keras
.Sequential( [keras.layers.Dense(units=1, input_shape=[1])] )model
.compile(optimizer='sgd', loss='mean_squared_error')xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0],
dtype=float)ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)model.fit(xs, ys,
epochs=500)print(model.predict([10.0]))1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删