Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 删除keras模型的第一层时出错_Tensorflow_Conv Neural Network_Keras Layer_Tf.keras_Keras 2 - Fatal编程技术网

Tensorflow 删除keras模型的第一层时出错

Tensorflow 删除keras模型的第一层时出错,tensorflow,conv-neural-network,keras-layer,tf.keras,keras-2,Tensorflow,Conv Neural Network,Keras Layer,Tf.keras,Keras 2,当我试着运行上面的代码时,我得到了下面的错误。我的问题是加载后如何删除模型的第一层。我最初将VGG模型拆分为子模型,然后加载子模型。我尝试了不同的方法,但都不管用。非常感谢您的帮助 import numpy as np from keras.applications.vgg19 import decode_predictions from prettytable import PrettyTable import time from keras import backend as K from

当我试着运行上面的代码时,我得到了下面的错误。我的问题是加载后如何删除模型的第一层。我最初将VGG模型拆分为子模型,然后加载子模型。我尝试了不同的方法,但都不管用。非常感谢您的帮助

import numpy as np
from keras.applications.vgg19 import decode_predictions
from prettytable import PrettyTable
import time
from keras import backend as K
from tensorflow import keras
from tensorflow.python import keras
from keras import models, layers, Model, Input
import tensorflow as tf

model_2=keras.models.load_model('model_2.h5',compile=False)
model_2.summary()

predictions1= np.load('D:/predictions_result.npy')
def profiler(model, test_input):
 data_input=test_input
 for layer in model.layers:
    start = time.time()
    im_imput=keras.layers.Input(batch_shape=model.get_layer(layer.name).get_input_shape_at(0))
    im_out = layer(im_imput)
    new_model = keras.models.Model(inputs=im_imput,outputs=im_out)
    data_input = new_model.predict(data_input)
    end = time.time() - start
    print(end)
    result=1


profiler(model_2,predictions1)

tmp=np.zeros((1,224,224,64))

for i in range(0,1):
   tmp[i,:,:,:]=predictions1[i,:]

predictions2 = model_2.predict(tmp)
label_vgg19 = decode_predictions(predictions2)
print ('label_vgg19 =', label_vgg19)

我无法重现您面临的错误。也许你可以分享可复制的代码。在下面的选项中,我尝试删除一个图层,结果成功了

 from kerassurgeon import Surgeon
 surgeon = Surgeon(model_2)
 layer_1 = model_2.layers[0] # selecting 2nd layer

 surgeon.add_job('delete_layer', layer_1)
 new_model = surgeon.operate()


我现在有一个类似的问题,你知道怎么了吗?
 from kerassurgeon import Surgeon
 surgeon = Surgeon(model_2)
 layer_1 = model_2.layers[0] # selecting 2nd layer

 surgeon.add_job('delete_layer', layer_1)
 new_model = surgeon.operate()
from kerassurgeon.operations import delete_layer
# delete layer_1 from a model
model = delete_layer(model_2, layer_1)
# delete layer_1 from a model
from kerassurgeon import Surgeon
surgeon = Surgeon(model_2)
surgeon.add_job('delete_layer', layer_1)
new_model = surgeon.operate()