我正在研究Tensorflow 2.0项目,并且遇到了一个有趣的错误。当我在Google Colab中运行项目时,我的项目没有错误。但是,当我在本地运行代码时,出现以下错误:
ERROR:tensorflow:Couldn't match files for checkpoint
,后跟相应检查点的文件路径。
当我致电model.load_weights(tf.train.latest_checkpoint(CKPT_DIR))
时,会发生此错误。这是回溯(在我的Windows计算机上):
Traceback (most recent call last):
File ".\shakespeare_lstm.py", line 159, in <module>
run_model(SEED)
File ".\shakespeare_lstm.py", line 147, in run_model
model.load_weights(tf.train.latest_checkpoint(CKPT_DIR))
File "E:\Github Repos\ShakespeareLSTM\venv\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 181, in load_weights
return super(Model, self).load_weights(filepath, by_name)
File "E:\Github Repos\ShakespeareLSTM\venv\lib\site-packages\tensorflow_core\python\keras\engine\network.py", line 1139, in load_weights
if _is_hdf5_filepath(filepath):
File "E:\Github Repos\ShakespeareLSTM\venv\lib\site-packages\tensorflow_core\python\keras\engine\network.py", line 1449, in _is_hdf5_filepath
return (filepath.endswith('.h5') or filepath.endswith('.keras') or
AttributeError: 'NoneType' object has no attribute 'endswith'
这会在运行Python 3.6.8的Windows计算机和运行Python 3.7.2的MacOS计算机上发生。 Google Colab运行Python 3.6.9,不会引发任何错误,并且可以按预期执行。它们都具有Tensorflow 2.0.0。
我的GitHub repo具有项目代码。
我在Google Colab上拥有的代码中唯一的区别是文件路径(ROOT = os.path.join("/", "content", "drive", "My Drive", "Colab Notebooks", "Shakespeare LSTM")
)的ROOT变量以及以下两行(在实际代码中不是紧挨着的):>
from google.colab import drive
drive.mount('/content/drive')
另一个区别是Google Colab笔记本设置为使用GPU,而我的本地计算机却没有。该模型在Google Colab上进行了训练,并下载了检查点文件。
有人对此代码为何能在Google Colab上而不在本地工作有任何想法吗?