作为初学者,我正在关注tensorflow网站上的教程。 在回归部分,我收到以下错误
命令: size_histories ['Tiny'] = compile_and_fit(tiny_model,'sizes / Tiny')
错误:
NameError:名称'logdir'未定义
我将非常感谢您的帮助。
完整的错误消息在这里:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-29-6b42ade0df41> in <module>
----> 1 size_histories['Small'] = compile_and_fit(small_model, 'sizes/Small')
<ipython-input-20-37c172377a6c> in compile_and_fit(model, name, optimizer, max_epochs)
16 epochs=max_epochs,
17 validation_data=validate_ds,
---> 18 callbacks=get_callbacks(name),
19 verbose=0)
20 return history
<ipython-input-19-1fd695b661fd> in get_callbacks(name)
3 tfdocs.modeling.EpochDots(),
4 tf.keras.callbacks.EarlyStopping(monitor='val_binary_crossentropy', patience=200),
----> 5 tf.keras.callbacks.TensorBoard(logdir/name),
6 ]
NameError: name 'logdir' is not defined
答案 0 :(得分:0)
因此,通过搜索"compile_and_fit" "tiny_model" logdir
,我发现您要遵循的教程必须是https://www.tensorflow.org/tutorials/keras/overfit_and_underfit
正如回溯所告诉您的那样,compile_and_fit()
调用get_callbacks()
,后者依次使用变量logdir
。 logdir
不会直接作为参数传递给get_callbacks()
,也不会在函数内部的任何位置定义。
因此,get_callbacks()
到达该行,看到名称logdir
,在其本地变量中找不到该名称的任何内容,因此尝试访问该名称的 global 变量取而代之。但是Python抱怨说,这个名字不存在根本不存在,甚至根本没有全局变量-因此,我想您一定已经跳过了本教程的较早部分,您将在其中设置该全局变量:
logdir = pathlib.Path(tempfile.mkdtemp())/"tensorboard_logs"
shutil.rmtree(logdir, ignore_errors=True)