前提・実現したいこと
回帰問題を深層学習を用いて解こうと思っております。kerasを用いてモデルの構築、学習を行い、tensorboardを用いて、lossなどの途中結果を表示したいと思っております。lossを表示させることはできていますが、各エポックごとに予測した結果を表示したいと思っております。tensorboardに予測した結果のグラフを表示させることは可能でしょうか?
現在のソースコード
簡単な例としてsin関数の回帰を行っております。トレーニングデータとその予測した結果をtensorboardで表示したいと思っております。
Python
1import numpy as np 2import keras 3from keras.models import Sequential 4from keras.layers import Dense 5from keras.optimizers import RMSprop 6 7def get_data(n_data, sigma=0): 8 def F(x): 9 return np.sin(2. * np.pi * x) 10 11 x = np.linspace(-1., 1., n_data) 12 y = F(x) 13 y = y + np.random.normal(loc=0., scale=sigma, size=y.shape) 14 return x.reshape(-1, 1), y.reshape(-1, 1) 15 16if __name__ == "__main__": 17 n_train = 10000 18 n_val = 2000 19 epochs = 100 20 batch_size = 10 21 22 x_train, y_train = get_data(n_train) 23 x_val, y_val = get_data(n_val) 24 25 model = Sequential() 26 model.add(Dense(1024, activation='relu', input_shape=(1, ))) 27 model.add(Dense(1024, activation='relu')) 28 model.add(Dense(1)) 29 30 model.summary() 31 model.compile(loss='mean_squared_error', optimizer=RMSprop()) 32 33 tb_cb = keras.callbacks.TensorBoard(log_dir='log', histogram_freq=1) 34 history = model.fit(x_train, 35 y_train, 36 batch_size=batch_size, 37 epochs=epochs, 38 verbose=1, 39 validation_data=(x_val, y_val), 40 callbacks=[tb_cb]) 41 score = model.evaluate(x_val, y_val, verbose=0) 42 print('Test loss: {}'.format(score))
補足情報(ツールのバージョンなど)
Python 3.6.5
tensorflow 2.2.0
tensorboard 2.2.1
keras 2.3.1
あなたの回答
tips
プレビュー