Tensorflow 如何将任何Keras层作为单个层运行以了解其行为?

Tensorflow 如何将任何Keras层作为单个层运行以了解其行为?,tensorflow,keras,keras-layer,Tensorflow,Keras,Keras Layer,为了了解任何Keras层的实现(例如,Conv2DTranspose),是否有办法将该层作为独立层运行(使用Tensorflow后端)?您可以提取Keras中每个层的权重,并使用它初始化相同类型的新层的权重。然后用这个新层作为模型,只需进行预测。如果该层不是第一层,则必须使用所有层重新创建模型,直到需要的层,使用训练模型中的权重初始化它们的权重,其余的都是相同的。我找到了一种开发简单单层模型的方法 keras_model = Sequential() keras_model.add(Conv2D

为了了解任何Keras层的实现(例如,
Conv2DTranspose
),是否有办法将该层作为独立层运行(使用Tensorflow后端)?

您可以提取Keras中每个层的权重,并使用它初始化相同类型的新层的权重。然后用这个新层作为模型,只需进行预测。如果该层不是第一层,则必须使用所有层重新创建模型,直到需要的层,使用训练模型中的权重初始化它们的权重,其余的都是相同的。

我找到了一种开发简单单层模型的方法

keras_model = Sequential()
keras_model.add(Conv2DTranspose(32, (2, 2), strides=(2, 2), input_shape=(32, 32, 3), name='trans'))
keras_model.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.SGD())
keras_model.summary()
keras_model.save('model.h5')
我是这样做的:

image_t = ds.make_one_shot_iterator().get_next() 
inputs = Input(shape=(224, 224, 3))
conv = Conv2D(16, (3, 3), padding='same')(inputs)
m = Model(inputs=inputs, outputs=conv)
m.compile(loss='mse', optimizer='rmsprop')  # loss and optimizer do not matter really
m.summary()

with tf.Session() as sess:                                                                                                                                                                                                                                        
   image = sess.run([image_t])                                                                                                                                                                                                                                         
   out = m.predict(image)[0]  

我想,我只对一个单层的模型感兴趣,或者只对一个我可以独立处理的层感兴趣。好的,我理解,但是如果有4个Conv层,第3个将第2层(特征图)的输出作为输入,而不是图像。您认为您将如何创建该要素图?或者你会给图层什么作为输入?我写的原因是,有没有办法解决我的问题。不,这就是重点。这就是为什么我用这些问题写了评论。。。有一件事要做,但我不会那样做。如果您使用的是Keras functional API,那么您可以在所需层之前保存该层的一些输出并观察它。然后创建一个只包含一个层的模型,即您想要查看的层,并使用来自模型的同一层的权重初始化它的权重,然后输入您保存的上一层的输出图像,并查看发生了什么。但是你将看不到太多,因为在我在下面的线程中为keras编写tensorflow代码作为答案之前,你无法理解层中发生了什么。