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 접미사를 붙여야 한다.

좋은 웹페이지 즐겨찾기