# モデルをコンパイル #================================ with mirrored_strategy.scope(): model_G.compile(loss=loss_mse, optimizer=optimizer_G, metrics=['mae']) if (args.debug): model_G.summary() #================================ # モデルの読み込み #================================ if (args.load_checkpoints_path): # モデルを定義したあと読み込む場合は load_weights() を使用 # モデルを定義せずに読み込む場合は keras.models.load_model() を使用 #model_G = keras.models.load_model(args.load_checkpoints_path) model_G.load_weights(args.load_checkpoints_path) print("load checkpoints in `{}`.".format(args.load_checkpoints_path)) init_epoch = 0 else: init_epoch = 0 #================================ # call backs の設定 #================================ # 各エポック終了毎のモデルのチェックポイント保存用 call back callback_checkpoint = tf.keras.callbacks.ModelCheckpoint( filepath=os.path.join(args.save_checkpoints_dir, args.exper_name, "step_{epoch:05d}.hdf5"), monitor='loss', verbose=2, save_weights_only=True, #
# モデルの構造を定義する。 #================================ model_G = TempleteNetworks(out_dim=3) if (args.debug): model_G( tf.zeros([args.batch_size, args.image_height, args.image_width, 3], dtype=tf.float32) ) # 動的作成されるネットワークなので、一度ネットワークに入力データを供給しないと summary() を出力できない model_G.summary() #================================ # モデルの読み込み #================================ if (args.load_checkpoints_dir): ckpt_state = tf.train.get_checkpoint_state(args.load_checkpoints_dir) model_G.load_weights(ckpt_state.model_checkpoint_path) print("load checkpoints in `{}`.".format( ckpt_state.model_checkpoint_path)) init_epoch = int(ckpt_state.model_checkpoint_path.split("-")[-1]) step = init_epoch # @ iters = step * args.batch_size # @ else: init_epoch = 0 step = 0 iters = 0 #================================ # optimizer の設定 #================================ optimizer_G = tf.keras.optimizers.Adam(learning_rate=args.lr, beta_1=args.beta1,