/usr/local/lib64/python3.6/site-packages/caffe2/python/onnx/__pycache__
NameSizeModeActions
backend.cpython-36.pyc289010644editdlrm
backend_cpp_rep.cpython-36.pyc18690644editdlrm
backend_rep.cpython-36.pyc20610644editdlrm
error.cpython-36.pyc4500644editdlrm
frontend.cpython-36.pyc103440644editdlrm
helper.cpython-36.pyc36290644editdlrm
onnxifi.cpython-36.pyc16310644editdlrm
test_onnxifi.cpython-36.pyc61310644editdlrm
workspace.cpython-36.pyc25900644editdlrm
__init__.cpython-36.pyc1540644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/caffe2/python/onnx/__pycache__/frontend.cpython-36.pyc (10344B)
3 Eg&2@sdZddlZddlZddlZddlZddlmZddlm Z m Z m Z m Z m Z mZmZmZddlmZmZddlZddlmZddljjZejejdejeZ Gdd d e!Z"e"j#Z#e"j$Z$e"j%Z%e"j&Z&dS) z`Caffe2 Protobuf to ONNX converter To run this, you will need to have Caffe2 installed as well. N)core)checkerhelper numpy_helpermapping GraphProto NodeProto TensorProtoOperatorSetIdProto)make_tensor_value_info make_model)c2_native_run_net)levelc@seZdZdZdddddddddddddd Zdhd d hd d hd d hd Zd d iZddiddidZiZe j Z e ddZ e ddZe ddZe ddZe ddZeddZeddZe d-d!d"Ze d#d$Ze d%d&Ze d'd(Ze d)d*Ze d+d,Zd S).Caffe2Frontend ZBatchNormalizationZConvZ ConvTransposeZMaxPoolZ AveragePool) Z SpatialBNZConv1DZConv2DZConv3DZConvTranspose1DZConvTranspose2DZConvTranspose3DZ MaxPool1DZ MaxPool2DZ MaxPool3DZ AveragePool1DZ AveragePool2DZ AveragePool3DsNCHWr)orderZcudnn_exhaustive_searchZexhaustive_searchZ use_cudnnZkernelsZ kernel_shapedimsZaxesZperm)ZSqueezeZ TransposecCs |jjS)N) _dummy_nameZnew_dummy_name)clsrG/usr/local/lib64/python3.6/site-packages/caffe2/python/onnx/frontend.py dummy_nameMszCaffe2Frontend.dummy_namecCs|j}|jj|j|j}||jkr6|j|j|j|}|jdrH|j}n\|jdrZ|j}nJ|jdrl|j}n8|j rz|j }n*|j r|j }n|j r|j }nt dj |||jkr||j|jkstdStj||S)Nfisz$Could not find data field in arg: {})type_global_renamed_argsgetname_per_op_renamed_argsZHasFieldrrrZfloatsintsstrings ValueErrorformat_blocklist_caffe2_argsAssertionErrorrZmake_attribute)rop_defargop_typervaluerrr_common_caffe2_arg_to_onnx_attrQs*     z.Caffe2Frontend._common_caffe2_arg_to_onnx_attrcCs |j||S)N)r+)rr'r(rrrcaffe2_arg_to_onnx_attrpsz&Caffe2Frontend.caffe2_arg_to_onnx_attrcsjt}j|_jjjj|_|jjj|jjjt dfddj D}|j j||S)Ncsg|]}j|qSr)r,).0r()rr'rr ~szACaffe2Frontend._common_caffe2_op_to_onnx_node..) rr_renamed_operatorsrrr)inputextendoutputfilterr( attribute)rr'shapesZnode_defattrsr)rr'r_common_caffe2_op_to_onnx_nodets  z-Caffe2Frontend._common_caffe2_op_to_onnx_nodec Cstj|jrtj|j|j|\}}g}x&|D]}t}|j||j|q.Wg}x&|D]}t } | j||j| qZW||fS|j|j krt ||j |j} n|j } | ||}g}t |tr|\}}t |tjjs|g}||fS)N)CZsupport_onnx_exportrZexport_to_onnxrZSerializeToStringrZParseFromStringappendr _special_operatorsgetattrr7 isinstancetuple collectionsabcIterable) rr'r5Z node_strsZ tensor_strsnodesrnode const_tensorstensorZ translatorrrrcaffe2_op_to_onnx_nodes.        z%Caffe2Frontend.caffe2_op_to_onnx_nodecCsX|dkrtSt}|j|j|j|jx&|jD]}|j|j|j|jq4W|S)N)setupdateexternal_inputexternal_outputopr0r2)netnamesrJrrr_all_names_in_nets    z Caffe2Frontend._all_names_in_netcCst|j|j|jdS)N)r elem_typeshape)r r data_typer)rDrrr_extract_value_infosz"Caffe2Frontend._extract_value_infoNcsdkr ittstdj|j|||r\j|}jdd|Dng}d}x6|jD],}x&tj |j |j D]}|krd}PqWqlWt t |jt j}|rtdjdj|d} d} |r`i} x6|jD],}|\} } tjj| jtj| | |<qWt||| \} } x6|jD],}| |}tj|j} |j} | | f|<q0Wt}|j|_|j j!||j j!fdd |jDj"j#j$|j$|Bx|jD]}i}xRtj |j |j D]>}| r| j%|}t&|d r|j||<n|d ||<qWj'||d \}}|j(j!||j j!||j j!fd d|DqWt t)dd |j(Ddd|j Dt dd |j D}|rt*j+djdj||j j!fdd |jD|S)Nz (type, shape) dictionarycSsi|]}|j|jf|jqSr)rPrr)r-initrrr sz;Caffe2Frontend.caffe2_net_to_onnx_graph..FTz'Could not find value info of inputs: {}z, c3s,|]$}t||d|ddVqdS)rr)rrNrON)r )r-r) value_inforr sz:Caffe2Frontend.caffe2_net_to_onnx_graph..rOr)r5csg|]}j|qSr)rQ)r-rD)rrrr.sz;Caffe2Frontend.caffe2_net_to_onnx_graph..css|]}t|jVqdS)N)listr2)r-rBrrrrUscSsg|] }|jqSr)r)r-rRrrrr.scss|] }|jVqdS)N)r)r-virrrrU szSThere are graph output not produced by any node or initializer: {}! Will drop them.c3s4|],}|krt||d|ddVqdS)rr)rrNrON)r )r-r) all_outputrTrrrUs),r<dictr#_filter_fake_init _ssa_rewritecaffe2_init_net_to_initializerrGrJ itertoolschainr0r2rFrVrHkeys RuntimeErrorr$joinnprandomZrandnZastyperZTENSOR_TYPE_TO_NP_TYPEr rIZNP_TYPE_TO_TENSOR_TYPEZdtyperOrr initializerr1rresetrM FetchBlobhasattrrErBsumloggerwarning)r predict_netinit_netrTrdZrun_native_netrJrmissingwsoutputsinputsrNrOr2Z graph_defr5ZblobrArCZredundant_outputr)rXrrTrcaffe2_net_to_onnx_graphs                          z'Caffe2Frontend.caffe2_net_to_onnx_graphcsPtd|gd\}g}x|jD]}|j|jqWfddtt|D}|S)N)rlrkrpcs g|]}tjj||dqS))r)rZ from_arrayrf)r-r)rnrrr.szACaffe2Frontend.caffe2_init_net_to_initializer..)r rJr1r2sortedrF)rrl_Z output_namesrJrdr)rnrr\s  z-Caffe2Frontend.caffe2_init_net_to_initializercsB|r>fdd|jD}x|D]}|jj|qW|dd=~dS)Ncs:g|]2}t|jdkr|jdkrtjd|jr|qS)rrzGivenTensor.*Fill|ConstantFill)lenr2rematchr)r-rJ)rTrrr.%sz4Caffe2Frontend._filter_fake_init..)rJremove)rrlrTZ fake_initsZ fake_initr)rTrrZ"s   z Caffe2Frontend._filter_fake_initcCs|j|||S)N)r[)rrKrlrTrrr ssa_rewrite-szCaffe2Frontend.ssa_rewritec sRd dd|rPx@|jD]6}tjd|js:tdj|j|t|jdkstqWtj |\}ig}x |D]\}}||7}||7}qlWx2|D]*\} } | kr| h| <q| j | qWt|jt|kstxXt |j|D]H\}\} } fdd| D|j dd<fdd| D|jdd<qWfd d|j D|j dd<dS) NcSs4|dkr |S|r(t|j|idkr(|Sdj||S)Nrrz{}_{})rtrr$)rversion version_cntrrrssa_name3s z-Caffe2Frontend._ssa_rewrite..ssa_namezGivenTensor.*Fillztype is {}, {}rcsg|]\}}||qSrr)r-rry)r{rzrrr.Nsz/Caffe2Frontend._ssa_rewrite..csg|]\}}||qSrr)r-rry)r{rzrrr.Pscsg|]}||qSrr)r-r) blob_versionsr{rzrrr.Rs)N)rJrurvrr&r$rtr2 caffe2_coreZget_ssaaddzipr0rI) rrKrlrTrJZssaZversioned_blobsZversioned_inputZversioned_outputrryZversioned_inputsZversioned_outputsr)r|r{rzrr[1s.       zCaffe2Frontend._ssa_rewritecOs:t}d|_|j|_t|j|||gdd}tj||S)Nz onnx-caffe2)Z opset_importsZ producer_name)r domaintarget_opset_versionryr rqrZ check_model)rargskwargsZopset_idmodelrrrcaffe2_net_to_onnx_modelUs  z'Caffe2Frontend.caffe2_net_to_onnx_model)NN)__name__ __module__ __qualname__rr/r%rr r:r8Z DummyNamer classmethodrr+r,r7rE staticmethodrMrQrqr\rZrxr[rrrrrr sL         a  $r)'__doc__r>r]loggingruZ caffe2.pythonrr}Zonnxrrrrrrr r Z onnx.helperr r ZnumpyrbZcaffe2.python.onnx.helperr Z!caffe2.python._import_c_extensionpythonZ_import_c_extensionr8 basicConfigINFO getLoggerrriobjectrrqrr\rxrrrrs& (   D