python - 错误“NameError:名称'logdir'未定义”
问题描述
作为初学者,我正在学习 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
解决方案
因此,通过谷歌搜索"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()
到达该行,看到 name logdir
,无法在其局部变量中找到该名称的任何内容,因此尝试访问该名称的全局变量。但是 Python 抱怨根本不存在这个名字,甚至没有一个全局变量——所以我猜你一定跳过了教程的前面部分,在那里你应该设置那个全局变量:
logdir = pathlib.Path(tempfile.mkdtemp())/"tensorboard_logs"
shutil.rmtree(logdir, ignore_errors=True)
推荐阅读
- python - 为什么 Geopandas 数据框返回索引错误
- python - Python中日期差到数字的错误转换
- python - 如何将颜色条添加到图像(“AxesSubplot”对象没有属性“颜色条”)
- komito-analytics - 如何使用 Komito Analytics 跟踪暗模式?
- python-3.x - 安装了fancyimpute,但我无法在 Jupyter 上导入它
- c++ - 无法从文件中加载正确的信息
- javascript - Web 开发人员如何查看用户控制台错误?
- sql - SQL Server:数据透视表奇数结果,
- reactjs - 打字稿:超时的正确类型是什么?
- python - 使用 pandas 进行多重索引