1
.prototxt
에 정의 된 카페 네트워크에서 네트워크 매개 변수를 읽고 싶습니다. layer_dict
의 레이어 개체로만 알려줍니다. 그것의 "컨볼 루션 (Convolution)"레이어는 아니지만 .prototxt
파일에 잘 정의 된 kernel_size
, strides
등과 같은 것은 아닙니다.파이퍼에서 caffe .prototxt 모델 정의에서 네트워크 매개 변수를 읽는 것
name: "Model"
layer {
name: "data"
type: "Input"
top: "data"
input_param {
shape: {
dim: 64
dim: 1
dim: 28
dim: 28
}
}
}
layer {
name: "conv2d_1"
type: "Convolution"
bottom: "data"
top: "conv2d_1"
convolution_param {
num_output: 32
kernel_size: 3
stride: 1
weight_filler {
type: "gaussian" # initialize the filters from a Gaussian
std: 0.01 # distribution with stdev 0.01 (default mean: 0)
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "dense_1"
type: "InnerProduct"
bottom: "conv2d_1"
top: "out"
inner_product_param {
num_output: 1024
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
내가 하나가 이렇게 같은 모델을 분석 할 수 있음을 발견했다 :
그래서 나는 model.prototxt
과 같이 가지고 말할 수
from caffe.proto import caffe_pb2
import google.protobuf.text_format
net = caffe_pb2.NetParameter()
f = open('model.prototxt', 'r')
net = google.protobuf.text_format.Merge(str(f.read()), net)
f.close()
을하지만 난 어떻게 필드를 얻는 아무 생각이 없다 결과 객체의 protobuf 메시지에서.