Deep learning 即使启用了紧急执行,Numpy也不可用

Deep learning 即使启用了紧急执行,Numpy也不可用,deep-learning,vgg-net,Deep Learning,Vgg Net,我的代码与从.mat文件加载的VGG19配合良好,并用于以下类似的函数(我使用tensorflow 1.14.0): 在我的项目中,我希望使用VGG19较大图像(>2000px)作为输入。为此,我发现我可以删除最后两层,以便VGG19可以在它们上工作。约束条件是VGG19必须从与tensorflow相关的KERAS模块加载。我修改了前面的代码,如下所示: from tensorflow.keras.applications.vgg19 import VGG19 model = VGG19(wei

我的代码与从.mat文件加载的VGG19配合良好,并用于以下类似的函数(我使用tensorflow 1.14.0):

在我的项目中,我希望使用VGG19较大图像(>2000px)作为输入。为此,我发现我可以删除最后两层,以便VGG19可以在它们上工作。约束条件是VGG19必须从与tensorflow相关的KERAS模块加载。我修改了前面的代码,如下所示:

from tensorflow.keras.applications.vgg19 import VGG19
model = VGG19(weights="imagenet", include_top=False,input_tensor=Input(shape=(1200, 1600, 3))) #to remove the two TOP layer in order to put larger images as inputs                                                                                   
VGG19_layers = model.layers

def _conv2d_relu_new(prev_layer, n_layer, layer_name,VGG19_layers):
    # get weights for this layer:
    if n_layer==0:
        n_layer=n_layer+1
    weights = tf.constant(VGG19_layers[n_layer].weights[0].numpy())
    W = tf.constant(weights)
    bias = tf.constant(VGG19_layers[n_layer].bias[:].numpy())
    b = tf.constant(np.reshape(bias, bias.shape[0]))
    # create a conv2d layer
    conv2d = tf.nn.conv2d(prev_layer, W, strides=[1, 1, 1, 1], padding='SAME') + b
    # add a ReLU function and return
    return tf.nn.relu(conv2d)
在我的项目中测试调整后的代码时,即使在代码顶部添加了“tf.enable_eager_execution()”,我也会遇到以下错误:

NotImplementedError: numpy() is only available when eager execution is enabled
我在问函数的适应性是否良好?还有,我如何解决numpy问题? 注意:我无法将tensorflow升级到2.x,因为孔项目在tensorflow 1.x下编码
谢谢你的帮助。

你试过1.15了吗?我刚按照你的建议测试了tf 1.15。不幸的是,仍然出现同样的错误,问题可能来自mat.file结构。我可以只使用numpy。当我从与TensorFlow相关的Keras加载VGG19时,会出现错误。我记得当我从mat文件加载VGG19时,没有问题,但是我无法删除2个完全连接的层。这就是为什么我试图在TF1X中使用“include_top=false”选项从Keras加载VGG19(如第二个代码所示)。您应该在会话中使用它。能否尝试在会话中启用tf.eager\u执行?
NotImplementedError: numpy() is only available when eager execution is enabled