microsoft / MMdnn

MMdnn is a set of tools to help users inter-operate among different deep learning frameworks. E.g. model conversion and visualization. Convert models between Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx and CoreML.
MIT License
5.78k stars 966 forks source link

Error:AttributeError: 'NoneType' object has no attribute 'real_variable_name' in DCGAN #570

Open Caoang327 opened 5 years ago

Caoang327 commented 5 years ago

Platform (like ubuntu 16.04/win10): ubuntu 16.04 Python version: 3.6.5 Source framework with version (like Tensorflow 1.4.1 with GPU): Tensorflow 1.12.0 with GPU Destination framework with version (like CNTK 2.3 with GPU): caffe Pre-trained model path (webpath or webdisk path): https://github.com/bamos/dcgan-completion.tensorflow Running scripts: mmconvert -sf tensorflow -in DCGAN.model-60502.meta -iw DCGAN.model-60502 --d stNodeName generator/Tanh -df caffe -om dcgan

the output is Warning: Graph Construct a self-loop node generator/g_bn0/cond/AssignMovingAvg/sub/Switch:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/cond/AssignMovingAvg/sub/Switch_1:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/cond/AssignMovingAvg_1/sub/Switch:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/cond/AssignMovingAvg_1/sub/Switch_1:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/cond/AssignMovingAvg/sub/Switch:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/cond/AssignMovingAvg/sub/Switch_1:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/cond/AssignMovingAvg_1/sub/Switch:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/cond/AssignMovingAvg_1/sub/Switch_1:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/cond/AssignMovingAvg/sub/Switch:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/cond/AssignMovingAvg/sub/Switch_1:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/cond/AssignMovingAvg_1/sub/Switch:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/cond/AssignMovingAvg_1/sub/Switch_1:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/cond/AssignMovingAvg/sub/Switch:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/cond/AssignMovingAvg/sub/Switch_1:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/cond/AssignMovingAvg_1/sub/Switch:1. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/cond/AssignMovingAvg_1/sub/Switch_1:1. Ignored. Warning: Graph Construct a self-loop node generator/g_h1/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_h2/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_h3/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/moments/StopGradient. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/moments/StopGradient. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/moments/sufficient_statistics/mean_ss. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/moments/normalize/divisor. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/moments/sufficient_statistics/var_ss. Ignored. Warning: Graph Construct a self-loop node generator/g_bn0/moments/normalize/divisor. Ignored. Warning: Graph Construct a self-loop node generator/g_h1/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_h1/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/moments/StopGradient. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/moments/StopGradient. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/moments/sufficient_statistics/mean_ss. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/moments/normalize/divisor. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/moments/sufficient_statistics/var_ss. Ignored. Warning: Graph Construct a self-loop node generator/g_bn1/moments/normalize/divisor. Ignored. Warning: Graph Construct a self-loop node generator/g_h2/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_h2/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/moments/StopGradient. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/moments/StopGradient. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/moments/sufficient_statistics/mean_ss. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/moments/normalize/divisor. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/moments/sufficient_statistics/var_ss. Ignored. Warning: Graph Construct a self-loop node generator/g_bn2/moments/normalize/divisor. Ignored. Warning: Graph Construct a self-loop node generator/g_h3/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_h3/BiasAdd. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/moments/StopGradient. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/moments/StopGradient. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/moments/sufficient_statistics/mean_ss. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/moments/normalize/divisor. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/moments/sufficient_statistics/var_ss. Ignored. Warning: Graph Construct a self-loop node generator/g_bn3/moments/normalize/divisor. Ignored. Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/caffe_p35/bin/mmtocode", line 11, in sys.exit(_main()) File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/conversion/_script/IRToCode.py", line 117, in _main ret = _convert(args) File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/conversion/_script/IRToCode.py", line 61, in _convert emitter.run(args.dstModelPath, args.dstWeightPath, args.phase) File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/conversion/caffe/caffe_emitter.py", line 143, in run super(CaffeEmitter, self).run(dstNetworkPath, dstWeightPath, phase) File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/conversion/common/DataStructure/emitter.py", line 21, in run self.save_code(dstNetworkPath, phase) File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/conversion/common/DataStructure/emitter.py", line 53, in save_code code = self.gen_code(phase) File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/

conversion/caffe/caffe_emitter.py", line 131, in gen_code func(current_node) File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/conversion/caffe/caffe_emitter.py", line 540, in emit_Mul self.emit_Scale(IR_node) File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/conversion/caffe/caffe_emitter.py", line 376, in emit_Scale self.parent_variable_name(IR_node), File "/home/ubuntu/anaconda3/envs/caffe_p35/lib/python3.5/site-packages/mmdnn/conversion/common/DataStructure/emitter.py", line 41, in parent_variable_name return self.IR_graph.get_parent(IR_node.name, path).real_variable_name AttributeError: 'NoneType' object has no attribute 'real_variable_name'

I just use the listed link github project checkpoint file trying to convert tensorflow DCGAN model to caffe. Thanks

rainLiuplus commented 5 years ago

Hi @Caoang327 , there are several ops have not been implemented, which make the IR graph disconnected.