在 parameters.py 中,定义了各类参数。
1 # training data directory 2 TRAINING_DATA_DIR = './data/' 3 4 # checkpoint directory 5 CHECKPOINT_DIR = './training_checkpoints/' 6 7 # training details 8 BATCH_SIZE = 16 9 BUFFER_SIZE = 128 10 EPOCHS = 15
在 numpy_dataset.py 中,创建了 5000 组训练数据集,模拟 y = x^3 + 1,并二进制格式写入文件。
1 from parameters import TRAINING_DATA_DIR 2 3 import numpy as np 4 import matplotlib.pyplot as plt 5 import os 6 7 8 # create training data 9 X = np.linspace(-1, 1, 5000) 10 np.random.shuffle(X) 11 y = X ** 3 + 1 + np.random.normal(0, 0.01, (5000,)) 12 13 # plot training data 14 plt.scatter(X, y) 15 plt.show() 16 17 # save data 18 if not os.path.exists(TRAINING_DATA_DIR): 19 os.makedirs(TRAINING_DATA_DIR) 20 21 X.tofile(os.path.join(TRAINING_DATA_DIR + 'training_data_X.bin')) 22 y.tofile(os.path.join(TRAINING_DATA_DIR + 'training_data_y.bin'))
在 subclassed_model.py 中,通过对 tf.keras.models.Model 进行子类化,设计了两个自定义模型。
1 import tensorflow as tf 2 tf.enable_eager_execution() 3 4 5 # model definition 6 class Encoder(tf.keras.models.Model): 7 def