Pytorch转ONNX采坑记:Converting a tensor to a Python boolean might cause the trace to be incorrect. We...

如果你用Pytorch定义的网络结构太过于灵活,那么转成ONNX的时候很有可能出错。这个报错通常情况下是你的网络结构中出现if else 语句。比如

        if cfg.CUDA:
            eps = torch.cuda.FloatTensor(std.size()).normal_()
        else:
            eps = torch.FloatTensor(std.size()).normal_()

最好不要这样写,能避免的话尽量避免。不要写if else判断语句。
比如写成这样:

eps = torch.normal(torch.zeros_like(mu))

如果避免不了的话,(⊙o⊙)…,可能转出来的网络就有问题。

参考资料

Pytorch 1.0 Tracer Warning: Converting a tensor to a Python index might cause the trace to be incorrect

你可能感兴趣的:(Pytorch)