2D 컨볼 루션을위한 작은 맞춤 Keras 모델에 맞춤형 가중치를 설정하는 데 도움이 필요합니다.Keras 모델의 가중치 설정
X = [[[3, 2, -4],
[0, 5, 4],
[2, -1, -7],
[-7, 0, 1]],
[[-8, 9, 1],
[-3, 6, 0],
[0, -4, 2],
[5, 1, 1]]]
이렇게 입력이 2 채널 만있는 4x3 이미지라고 생각할 수 있습니다. 그리고 제 커널은 다음과 같습니다 :
kernel = [[[2, 1],
[0, -1],
[0, -1]],
[[1, 2],
[2, -1],
[2, -2]]]
그래서 2 차원 3x2 커널입니다. 하나의 보폭과 패딩, 손으로 차원 컨볼 루션을하는 수율 : 불행하게도
[[10, 14],
[27, 16]]
, 다음 Keras 코드 :
model = Sequential()
conv2d = Conv2D(filters=1, kernel_size=(3,2), strides=1, input_shape=(2,4,3), use_bias=False)
model.add(conv2d)
layer = model.layers[0]
layer.set_weights([np.array(kernel).reshape(3, 2, 2, 1)])
print(model.predict(np.array(X).reshape((1,) + np.shape(X))))
출력 :
[[19, -6],
[-39, 16]]
나는 할 수 없었다 Keras가 컨볼 루션을 위해 어떻게 커널을 구성하는지 알아 내십시오. 지금까지는 매우 직관력이 부족한 것처럼 보였지만 아마 뭔가 빠졌을 것입니다.
저는 Tensorflow 1.4.0과 함께 Keras 2.0.9를 백엔드로 사용하고 있습니다.