Это простая вещь, которую я просто не мог понять, как это сделать.
Я преобразовал предварительно обученную модель VGG caffe в tensorflow, используя код github из https://github.com/ethereon/caffe-tensorflow и сохранил его на vgg16.npy...
Затем я загружаю сеть в мой сеанс по умолчанию sess как "net", используя:
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?? (оба являются тензорами)