首先,这不是我的代码。我只是对其进行了修改,使其能够在TPU上训练。原作者在这里:链接。我在协作笔记本的GPU加速运行环境中能够运行它,但在使用TPU加速运行环境时它似乎会出错。
这是我的笔记本。它只给我一个错误,指出激活函数的大小不正确。
ValueError: Error when checking target: expected activation_21 to have shape (1,) but got array with shape (205,)
我非常感谢任何帮助,因为我已经花了大约3个小时在调试上。
回答:
由于您对标签进行了独热编码,因此它们不是稀疏的,您需要使用’categorical_accuracy’作为度量标准:
model.compile(..., metrics=['categorical_accuracy'])
或者更简洁地使用’accuracy’,让Keras根据所使用的损失函数推断出正确的度量标准(在这种情况下,将使用'categorical_accuracy'
,因为您使用categorical_crossentropy
作为损失函数):
model.compile(..., metrics=['accuracy'])