Tensorflow load_weights()在Google Colab中工作,但在本地失败

时间:2019-12-23 21:36:03

标签: python tensorflow keras google-colaboratory tensorflow2.0

我正在研究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上而不在本地工作有任何想法吗?

0 个答案:

没有答案