2016-06-28 2 views
0

CNN의 가중치가 될 변수가 있습니다. 모양이 [kernel_width, kernel_height, in_channels, out_channels]라고 가정 해 봅시다.tensorflow에서 변수의 복잡한 초기화는 어떻게합니까?

내가 뭘 원하는 어떤 임의의 값으로 초기화하는 것이지만, 각각의 커널의 중심 값을 가진 3 × 3 커널, 나는 값이 [[되고 싶은, 예를 들어 1

로 r, r, r], [r, 1, r], [r, r, r]] 여기서 각 r은 임의의 분포에서 취한 다른 임의의 값입니다.

해당 형식으로 numpy 배열을 쉽게 만들 수 있지만 임의의 배열을 사용하여 변수를 초기화하는 방법을 알 수 없습니다.

답변

1

앞서 말씀 드렸듯이 가장 쉬운 방법은 수위가 낮은 배열로 필터를 초기화하는 것입니다. 당신은 단지 변수의 생성에이 배열을 통과해야 :

filter_value = 0.1 * np.random.randn(3, 3, 64, 64) 
filter_value[1, 1, :, :] = 1. # set the center value to 1. 

filter = tf.Variable(filter_value, dtype=tf.float32) 
+0

https://www.tensorflow.org/versions/r0.9/how_tos/variables/index.html 것은 암시하는 것 같다 만 텐서 수 변수를 초기화하는 데 사용됩니다. –

+0

텐서로 변환 될 수있는 모든 것은 문서에 따라 유효합니다. 즉, 목록이 괜찮다는 것을 의미하고 numpy 배열은 괜찮습니다. –

+0

고마워요 .- 제게 그 의사가 말하는 곳을 가르쳐 주시겠습니까? –

관련 문제