运行TensorFlow Transform时出现trainable_variables数据类型错误,是否正常?
TensorFlow Transform中
trainable_variables相关错误的解答 兄弟,先给你明确说:这个trainable_variables相关的ERROR不属于正常情况,不过也不用太慌,大概率是TF Transform在处理变量集合时的小兼容性问题或者代码配置细节没做好。咱们来拆解下你的输出和问题:
首先看那个CPU指令提示:
2018-03-20 14:36:30.468584: I tensorflow/core/platform/cpu_feature_guard.cc:137] 你的CPU支持以下指令,但当前TensorFlow二进制文件未编译以使用这些指令:SSE4.2 AVX AVX2 FMA
这个只是信息提示(不是错误),意思是你的CPU有更高效的指令集,但你装的TensorFlow版本没编译支持这些,只会影响运算速度,不会导致后面的错误,完全可以忽略;如果在意性能的话,也可以尝试自己编译适配这些指令的TensorFlow版本。
重点是下面的ERROR:
ERROR:tensorflow:无法识别trainable_variables集合的数据类型,正在跳过。
这个问题通常出在这些场景:
- 版本不兼容:TensorFlow和TensorFlow Transform的版本匹配度要求很高,旧版TF Transform可能无法识别新版TF里的某些变量类型,建议你核对官方推荐的配套版本(比如早期TF Transform 0.12对应TF 1.12左右),尽量保持版本适配。
- 自定义变量/层未被识别:如果你的代码里有自定义的变量类型或者自定义层,TF Transform的预处理流程可能没法解析这些,你可以先简化代码,去掉自定义部分测试是否还会报错,逐步定位问题点。
- 预处理混入了模型训练变量:TF Transform是用来做特征工程预处理的,本来不需要触碰模型的可训练变量,如果你的代码不小心把训练模型的变量带到了预处理流程里,就会触发这个错误,检查下是否把模型训练和预处理的逻辑混在一起了,应该把两者拆分清楚。
- 缓存文件损坏:之前运行生成的Transform缓存文件可能出问题了,你可以删掉生成的临时缓存目录,重新运行脚本试试。
内容的提问来源于stack exchange,提问作者Debasish Das
相关产品推荐
相关产品推荐

