Meşale ile eğitilmiş bir sinir ağı verdim ve tam olarak tensorflow içinde yeniden inşa etmem gerekiyor. Ağın mimarisini tensorflow'da doğru bir şekilde tanımladığımı düşünüyorum ama ağırlık ve önyargı tensörlerini transfer etmekte zorlanıyorum. Üçüncü bir parti paketi kullanarak, tüm ağırlık ve ön gerilim tensörlerini meşale ağından numpy dizilerine dönüştürdüm ve sonra diske yazdım. Onları python programıma geri yükleyebilirim ancak tensorflow ağımdaki ilgili katmanlara atamak için bir yol bulamıyorum.Tensorflow conv2d çalışmasının ağırlık ve öngerilimli tensörleri ayarlayın
Örneğin, tensorflow belgelerine göre
kernel_1 = tf.Variable(tf.truncated_normal([11,11,3,64], stddev=0.1))
conv_kernel_1 = tf.nn.conv2d(input, kernel_1, [1,4,4,1], padding='SAME')
biases_1 = tf.Variable(tf.zeros[64])
bias_layer_1 = tf.nn_add(conv_kernel_1, biases_1)
olarak tensorflow tanımlanan bir büklüm katmanı, tf.nn.conv2d işletme ağırlığı tensörünün oluşturmak için kernel_1 değişkeninde tanımlanan şekli kullanmaktadır. Ancak, dosyadan yüklediğim ağırlık dizisine ayarlamak için bu ağırlık tensörüne nasıl erişeceğimi anlayamıyorum.
Ağırlık tensörünü açıkça ayarlamak mümkün mü? Ve eğer öyleyse, nasıl?
(aynı soru önyargı tensörü için geçerlidir.)
Bu yaklaşımı denedim ve bana bir hata veriyor. ValueError: Shape (64, 363) 4 numaralı olmalıdır. Benim anlayışım, filtre parametresinin ağırlık tensörünün nasıl oluşturulduğunu tanımlamasıdır – bdawson1
Ya da yüklenmeyi yeniden biçimlendirmem gerekiyor mu? ağırlık tensörü? Yürütme sırasında değerleri korur mu? – bdawson1
Evet, ağırlık tensörünü yeniden şekillendirmeniz gerekebilir. 'Tf.nn.conv2d() 'op, bunun 4 boyutlu olmasını gerektirir; [filter_height, filter_width, in_channels, out_channels]'. – mrry