tensorflowでsees.run()
をしたのですが、次のようなエラーが出てしまいました。
local variable 'loss_value' referenced before assignment’
エラーの内容を見るとloss_value
が事前に定義されていないと出てしまうのですが、コードを見て見るとloss_value
は定義されています。
このコードはcifar10から持ってきたものですが、この_LoggerHook()
というclassに問題があるようなのですが、この場合、loss_value
をどこでどのように定義すればこのエラーは解決するのでしょうか?
with tf.Graph().as_default(): global_step = tf.contrib.framework.get_or_create_global_step() images, label = inpus_s('/Users/Downloads/train.tfrecords') c_logits = cnn(images) loss = loss(c_logits, label) train_op = train(loss, global_step) class _LoggerHook(tf.train.SessionRunHook): def begin(self): self._step = -1 self._start_time = time.time() def before_run(self, run_context): self._step += 1 return tf.train.SessionRunArgs(loss) # Asks for loss value. def after_run(self, run_context, run_values): if self._step % 10 == 0: current_time = time.time() duration = current_time - self._start_time self._start_time = current_time loss_value = run_values.results examples_per_sec = 10 * 128 / duration sec_per_batch = float(duration / 10) print ('%s: step %d, loss = %.2f (%.1f examples/sec; %.3f ' 'sec/batch)' % (datetime.now(), self._step, loss_value, examples_per_sec, sec_per_batch)) with tf.train.MonitoredTrainingSession(hooks=[tf.train.StopAtStepHook(last_step=1000), tf.train.NanTensorHook(loss), _LoggerHook()], config=tf.ConfigProto( log_device_placement=False)) as mon_sess: while not mon_sess.should_stop(): mon_sess.run(train_op) UnboundLocalError: local variable 'loss_value' referenced before assignment
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。