Python Colaboratory

全結合モデルファイルまとめ

ここまで、全結合モデルファイルにコ-ルバック、compile メソッド、fit メソッドを組込み、 history オブジェクトを構築しました。
引き続き、これまでの各デ-タセット timeseries_dataset ファイル と合体し、全結合モデルファイルをまとめます。
CSV デ-タを利用した
timeseries_dataset ファイル keras-test-51.ipynb 及び
全結合モデルファイル keras-test-52.ipynb に
コ-ルバック、compile メソッド、fit メソッド、history オブジェクト
をマ-ジ結合します。
マ-ジした部分は赤字にしています。
ファイル名は
keras-test-53.ipynb
とします。


import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from tensorflow import keras
xl_df = pd.read_csv("drive/MyDrive/Colab Notebooks/my_data/colab-data.csv")
day = xl_df["Date"].values
raw_data0 = xl_df["Value"].values
print("raw_data0.shape:", raw_data0.shape)
print("raw_data0")
print(raw_data0)
plt.plot(range(len(raw_data0)), raw_data0)
plt.show()
raw_data = raw_data0.copy()
# 行列の平均、標準偏差を求めます。
mean = np.mean(raw_data)
print("Mean", mean)
raw_data -= mean
std = np.std(raw_data)
print("Std ",std)
# 標準偏差値に変換
raw_data /= std
print("各標準偏差値")
print(raw_data)

# 連続デ-タとする。一つおきは、2
sampling_rate = 1
# 過去20間隔デ-タをひとまとまりとして時系列予測する
sequence_length = 20
delay = sampling_rate * sequence_length
print("delay:", delay)
batch_size = 32  # 適当
# 検証デ-タのスタ-ト値
num_half_samples = int(0.5 * len(raw_data))

train_dataset = keras.utils.timeseries_dataset_from_array(
  raw_data,
  targets=raw_data[delay:],
  sampling_rate=sampling_rate,
  sequence_length=sequence_length,
  batch_size=batch_size,
)
val_dataset = keras.utils.timeseries_dataset_from_array(
  raw_data[:-1],
  targets=raw_data[delay:],
  sampling_rate=sampling_rate,
  sequence_length=sequence_length,
  batch_size=batch_size,
  start_index=num_half_samples,
)
test_dataset = keras.utils.timeseries_dataset_from_array(
  raw_data,
  targets=None,
  sampling_rate=sampling_rate,
  sequence_length=sequence_length,
  batch_size=batch_size,
)
# numpy ndarray 配列に変換して表示
# 訓練デ-タセット表示
itr = 0
for samples, targets in train_dataset:
  samples_n = samples.numpy()
  targets_n = targets.numpy()
  if itr == 0:
    print("Start in-train:", samples_n[0])
    print("Start tar-train:", targets_n[0])
    itr = itr + 1
print("End in-train:", samples_n[-1])
print("End tar-train:", targets_n[-1])
# 検証デ-タセット表示
itv = 0
for samples_v, targets_v in val_dataset:
  samples_vn = samples_v.numpy()
  targets_vn = targets_v.numpy()
  if itv == 0:
    print("Start in-val:", samples_vn[0])
    print("Start tar-val:", targets_vn[0])
    itv = itv + 1
print("End in-val:", samples_vn[-1])
print("End tar-val:", targets_vn[-1])
# テストデ-タセット表示
i = 0
for inputs_t in test_dataset:
  inputs_n = inputs_t.numpy()
  if i == 0:
    print("Start test:", inputs_n[0])
    i = i + 1
print("End test:", inputs_n[-1])

#------ここまで keras-test-51.ipynb 
# from tensorflow import keras

from keras import layers
from keras import initializers

sequence_length = 20
inputs = keras.Input(shape=(sequence_length,))
x = layers.Flatten()(inputs)
x = layers.Dense(
    20,
    activation="tanh",
    kernel_initializer='zeros'
    )(x)
outputs = layers.Dense(1)(x)
model = keras.Model(inputs, outputs)
print("モデルア-キテクチャ")
print(model.summary())

#---ここまで keras-test-52.ipynb
 
callbacks_list = [
  keras.callbacks.EarlyStopping(
    monitor="val_loss",
    patience=2,
    ),
  keras.callbacks.ModelCheckpoint(
    "drive/MyDrive/Colab Notebooks/my_data/jena_dense.keras",
    save_best_only=True,
    )
]
model.compile(optimizer="rmsprop", loss="mse", metrics=["mae"])
history = model.fit(
  train_dataset,
  epochs=40,
  # verbose=0,
  validation_data=val_dataset,
  callbacks=callbacks_list)
  
loss = history.history["mae"] # 平均絶対誤差(MAE)
val_loss = history.history["val_mae"]
epochs = range(1, len(loss) + 1)

plt.plot(epochs, loss, "bo", label="Training MAE")
plt.plot(epochs, val_loss, "b", label="Validation MAE")
plt.title("Training and Validation MAE")
plt.legend()
plt.show()  


ここまでで、全結合モデルファイル keras-test-53 まとめることができました。
引き続き、全結合モデルファイルの動作確認をしていきます。


  • keras-test-53 動作確認 に進む
  • コ-ルバックを使用 に戻る
  • 全結合モデル後半作成 に戻る
  • 大域最適解みつからず に戻る
  • Keras モデルの構築 に戻る
  • keras-test-51 動作確認 に戻る
  • 各デ-タセットの内容表示 に戻る
  • 3種の timeseries_dataset デ-タを作成 に戻る
  • CSV timeseries_dataset まとめ に戻る
  • CSV デ-タ timeseries_dataset 作成 に戻る
  • 標準化した dummy_dataset を作成 に戻る
  • dummy_dataset の内容表示 に戻る
  • RNN の理解-Ⅱ に戻る
  • 時系列のためのディ-プラ-ニング に戻る
  • ロ-ソク足表示ファイルまとめ に戻る
  • ロ-ソク足本体の表示 に戻る
  • Colab で mplfinance を使用 に戻る
  • CSV ファイルの読込 に戻る
  • Colab を始める に戻る
  • 70VPS に戻る