私は基本的にテンソルフローでGenerative Adversarial Network(GAN)をトレーニングしています。ここでは基本的に独自のオプティマイザを持つ2つの異なるネットワークがあります。Tensorflowで変数のサブセットを復元する
self.G, self.layer = self.generator(self.inputCT,batch_size_tf)
self.D, self.D_logits = self.discriminator(self.GT_1hot)
...
self.g_optim = tf.train.MomentumOptimizer(self.learning_rate_tensor, 0.9).minimize(self.g_loss, global_step=self.global_step)
self.d_optim = tf.train.AdamOptimizer(self.learning_rate, beta1=0.5) \
.minimize(self.d_loss, var_list=self.d_vars)
問題は、最初にネットワーク(g)の1つを訓練してから、gとdを一緒に訓練したいということです。私は、ロード関数を呼び出すときしかし、:
self.sess.run(tf.initialize_all_variables())
self.sess.graph.finalize()
self.load(self.checkpoint_dir)
def load(self, checkpoint_dir):
print(" [*] Reading checkpoints...")
ckpt = tf.train.get_checkpoint_state(checkpoint_dir)
if ckpt and ckpt.model_checkpoint_path:
ckpt_name = os.path.basename(ckpt.model_checkpoint_path)
self.saver.restore(self.sess, ckpt.model_checkpoint_path)
return True
else:
return False
を私は(多くのトレースバック付き)このようなエラーがあります:
Tensor name "beta2_power" not found in checkpoint files checkpoint/MR2CT.model-96000
私はgネットワークを復元し、その関数でトレーニングを続けることができ、しかし、私が最初からdに星をつけたいと思ったときに、そして記憶されたモデルからgにその誤差がある。