Colab使用TPU运行model.fit()报Unable to parse tensor proto错误
Colab TPU训练报错基础信息
在Colab平台启用TPU算力开展模型训练时,执行model.fit()阶段触发运行异常,抛出的错误提示为:InvalidArgumentError: Unable to parse tensor proto [Op:ComputeBatchSize]
已尝试的排障操作
- 最初根据报错关联BatchSize逻辑的特征,先后调整多组不同取值的batch size参数重新执行全流程,问题始终没有解决
- 检索公开渠道可获取的同特征报错参考资料极少,没有可直接复用的排障路径
当前训练数据管线的核心实现
整套训练数据流基于GCS存储的tfrecords文件搭建,核心实现步骤为:
- 用
tf.io.gfile.glob匹配gs://diem-bucket/*.tfrecords路径下的所有tfrecords文件,生成训练文件列表 - 对生成的文件列表配置支持跨迭代重随机打乱的shuffle规则,设置shuffle的buffer_size值为匹配到的tfrecords文件总长度
- 通过
interleave方法并行加载所有TFRecordDataset,配置cycle_length为tfrecords文件总长度、并行调用数设为tf.data.AUTOTUNE、关闭执行确定性以保证加载效率 - 加载得到的单条样本按batch size=8做批次拼接,配置预取缓存数为8,调用自定义的
batch_parse_func对批次数据做并行解析处理
排障需求
常规调整batch size的排障方式完全失效,需要针对ComputeBatchSize算子触发的该类报错,获取可落地的解决建议。
内容的提问来源于stack exchange,提问作者sealpuppy
相关产品推荐
相关产品推荐

