這是一件簡單的事情,我只是無法弄清楚該怎麼做。Tensorflow:我如何將圖形的小節分配給numpy預訓練的權重?
我轉換預先訓練VGG朱古力模型中使用來自https://github.com/ethereon/caffe-tensorflow GitHub的代碼tensorflow並保存它vgg16.npy ...
我那麼網絡加載到我的SESS默認會話爲「網」使用:
images = tf.placeholder(tf.float32, [1, 224, 224, 3])
net = VGGNet_xavier({'data': images, 'label' : 1})
with tf.Session() as sess:
net.load("vgg16.npy", sess)
在net.load之後,我得到一張張量列表圖。我可以使用net.layers ['conv1_1'] ...來獲取每個層的單獨張量,以獲得第一個VGG卷積層的權重和偏差等。
現在假設我製作了另一個圖形作爲其第一層「h_conv1_b」:
W_conv1_b = weight_variable([3,3,3,64])
b_conv1_b = bias_variable([64])
h_conv1_b = tf.nn.relu(conv2d(im_batch, W_conv1_b) + b_conv1_b)
我的問題是 - 你怎麼從net.layers分配預訓練的權重[「conv1_1」]到h_conv1_b? (均爲現在張量)
你似乎在說你的'net.load()'已經把東西加載到TF張量中了。那麼究竟是什麼阻止你簡單地做'W_conv1_b = net.layers ['conv1_1']。weights'或類似的東西呢? –