resnet_v1.resnet_v1_101
не возвращает просто net
, а вместо этого возвращает кортеж net, end_points
.Второй элемент - это словарь, по-видимому, поэтому вы получаете именно это сообщение об ошибке.
Для документации этой функции :
Возвращает:
net: тензор размера ранга 4 [batch, height_out,width_out, channel_out].Если global_pool равен False, то height_out и width_out уменьшаются на коэффициент output_stride по сравнению с соответствующими height_in и width_in, в противном случае значения height_out и width_out равны единице.Если num_classes равен 0 или None, то net является выходом последнего блока ResNet, возможно, после глобального среднего пула.Если num_classes - ненулевое целое число, net содержит активации pre-softmax.
end_points: Словарь от компонентов сети до соответствующей активации.
Таким образом, вы можете написать дляпример:
net, _ = resnet_v1.resnet_v1_101(img_1, 2048, is_training=False, global_pool=False, output_stride=8)
net = slim.conv2d(net, numclasses, 1)
Вы также можете выбрать промежуточный слой, например:
_, end_points = resnet_v1.resnet_v1_101(img_1, 2048, is_training=False, global_pool=False, output_stride=8)
net = slim.conv2d(end_points["main_Scope/resnet_v1_101/block3"], numclasses, 1)
(вы можете посмотреть в end_points, чтобы найти имена конечных точек. Ваше имя области будет другимчем main_Scope.)