smbol의 내부 노드 가져오기 (일부 네트워크 구조 가져오기)
5371 단어 mxnet-symbol
data = mx.sym.Variable('data')
fc1 = mx.sym.FullyConnected(data=data, name='fc1', num_hidden=1000)
act = mx.sym.Activation(data=fc1, act_type='relu',name='act')
fc2 = mx.sym.FullyConnected(data=act, name='fc2', num_hidden=10)
net = mx.sym.SoftmaxOutput(fc2,name="softmax")
net.save('model.symbol.json')
네트워크를 save 시리얼화하여 json 파일로 저장합니다. #mx.sym.Symbol 유형 자체 save 함수
json 불러오기, 내부 노드 가져오기
net = mx.sym.load('model.symbol.json')
net.get_internals # , group
<Symbol group [data, fc1_weight, fc1_bias, fc1, act, fc2_weight, fc2_bias, fc2, softmax_label, softmax]>
net.get_internals().list_outputs() #
['data',
'fc1_weight',
'fc1_bias',
'fc1_output',
'act_output',
'fc2_weight',
'fc2_bias',
'fc2_output',
'softmax_label',
'softmax_output']
new_net = net.get_internals()['act_output'] # key value , , new_net ,
var에 대해 그
list_outputs()
와 list_inputs()
는 모두 그 자신이다. 다른op, 예를 들어 +,-,relu 등에 대한 출력은 이op의name 뒤에 _output
접미사를 붙여야 한다.