我无法在Google Colab TPU中加载经过训练的模型 - 由batch_shape引起的错误

问题描述 投票:0回答:1

我在 Kaggle 和 Google Colab 中使用笔记本。在 Kaggle (GPU P100) 中训练模型并尝试将其加载到 Colab (TPU) 中后,我收到此错误:

TypeError: Error when deserializing class 'InputLayer' using config={'batch_shape': [None, 191], 'dtype': 'float32', 'sparse': False, 'name': 'input_layer'}.

Exception encountered: Unrecognized keyword arguments: ['batch_shape']

我之前一直在 Colab T4 GPU(以及 CPU)中加载模型,并且运行得非常好。有人知道我需要做什么才能将现有模型移植到 Colab TPU 吗?

我试图找出每个环境中使用的 keras 版本,所以我运行了这个:

import tensorflow as tf
from tensorflow import keras

print(tf.__version__)
print(keras.__version__)

在 Kaggle GPU P100 和 Colab CPU 中,结果是:

2.15.0
3.4.1

在使用上述代码的 Google Colab TPU 中,tensorflow 版本显示

2.15.0
并且 keras 部分返回错误:

AttributeError: module 'keras.api._v2.keras' has no attribute '__version__'

旁注: 我不知道为什么 Colab 目前阻止我使用 GPU。我没有超出限制,因为过去 3 天我没有使用 GPU 进行训练。根据我的经验,GPU 和 TPU 共享相同的限制,所以我很惊讶 TPU 可以工作(嗯……它至少会激活)而 GPU 却不能。

无论哪种方式,有人可以帮助将模型移植到 TPU 吗?

python tensorflow keras google-colaboratory tpu
1个回答
0
投票

由于版本不匹配而出现错误。TensorFlow==2.15 使用旧版本覆盖 keras(

keras==2.15
)。如果您安装 TensorFlow 2.15,则应随后重新安装 keras 3。对于 TensorFlow 2.16 及以上版本,无需执行此步骤,它会默认安装 Keras 3。因此,要解决此问题,您可以升级 TensorFlow 版本,或者在安装 TensorFlow 2.15 和
keras==3.0
后直接手动安装
import keras
,而不是使用
from tensorflow import keras
。请参阅此文档。另请参阅此要点

© www.soinside.com 2019 - 2024. All rights reserved.