TensorFlow的一些错误解决

错误描述
NodeDef mentions attr ‘Truncate’ not in Op<name=Cast; signature=x:SrcT -> y:DstT; attr=SrcT:type; attr=DstT:type>; NodeDef: Tacotron_model/inference/LocationSensitiveAttention/SequenceMask/Cast_1 = CastDstT=DT_FLOAT, SrcT=DT_BOOL, Truncate=false, _device="/job:localhost/replica:0/task:0/device:CPU:0". (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).
上面这个错误是我的的pb模型正常导出和加载,但是在计算的时候出现上述错误。
解决办法
根据错误的描述,可以知道错误可能出现在SequenceMask这一块,进一步分析发现SequenceMask这个操作是在训练的时候才需要的操作,inference阶段是不需要这个操作的,把配置文件里的相关选项置成False之后,重新导出模型,该问题就没有了。

错误描述
No OpKernel was registered to support Op ‘PyFunc’ with these attrs. Registered devices: [CPU], Registered kernels:
<no registered kernels>
[[Node: Tacotron_model/PyFunc = PyFunc[Tin=[DT_INT32, DT_INT32], Tout=[DT_INT32], token=“pyfunc_0”, _device="/cpu:0"](datafeeder/input_queue_Dequeue, Tacotron_model/strided_slice)]]
加载模型遇到上述错误
解决办法
上面类型的错误是由于 PyFunc 这个op不被支持造成的,需要将这个op修改。

错误描述
specified in either feed_devices or fetch_devices was not found in the graph
解决办法
在导出pb格式模型时,相关node没有被放到图里面,或者相关node名字出现了变化。

错误描述
Exiting due to exception: Cannot serialize protocol buffer of type tensorflow.GraphDef as the serialized size
解决办法
tf中的一些操作,比如tf.assign,如果反复调用,可能就会出现上面的错误,原因就是tf会把上面的操作不断添加到graph中,导致graph不断变大,最终超标。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值