我正在尝试将 keras 模型转换为 google colab 中的 tpu 模型,但是这个模型里面有另一个模型。
看一下代码: https ://colab.research.google.com/drive/1EmIrheKnrNYNNHPp0J7EBjw2WjsPXFVJ
这是 google tpu 文档中示例之一的修改版本: https ://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/fashion_mnist.ipynb
如果 sub_model 被转换并直接使用,它可以工作,但如果子模型在另一个模型中,它就不起作用。我需要网络的子模型类型,因为我正在尝试训练一个内部有 2 个网络的 GAN 网络(gan=generator+discriminator),所以如果这个测试有效,它可能也适用于 gan。
我尝试了几件事:
- 在不转换子模型的情况下将模型转换为 tpu,这样在开始训练时会提示与子模型的输入相关的错误。
- 将模型和子模型都转换为tpu,这样在转换“父”模型时会提示错误,异常只在“层”末尾说。
- 仅将子模型转换为 tpu,在这种情况下不会提示错误,但 tpu 不会加速训练,并且非常慢,就像根本没有转换为 tpu 一样。
- 是否使用固定的批量大小,两者的结果相同,模型不起作用。
有任何想法吗?非常感谢。