项目场景:
`
运行HiddenLayer报错module ‘torch.onnx’ has no attribute ‘_optimize_trace’
问题描述
运行HiddenLayer报错module ‘torch.onnx’ has no attribute ‘_optimize_trace’
原因分析:
由于pytorch版本较新,hiddenLayer内部的API没有相应地更新,HiddenLayer还是调用的_optimize_trace,而新版pytorch已经改成了_optimize_graph。
解决方案:
只需要找到,hiddenlayer包里面的pytorch_builder.py程序:我的环境绝对路径是:D:\Anaconda3\setup\envs\AI\Lib\sitepackages\hiddenlayer\pytorch_builder.py,然后在71行改一下就行了,
def import_graph(hl_graph, model, args, input_names=None, verbose=False):
# TODO: add input names to graph
# Run the Pytorch graph to get a trace and generate a graph from it
trace, out = torch.jit._get_trace_graph(model, args)
# torch_graph = torch.onnx._optimize_trace(trace, torch.onnx.OperatorExportTypes.ONNX)
torch_graph = torch.onnx._optimize_graph(trace, torch.onnx.OperatorExportTypes.ONNX) # 这里改动过