奇怪的是,我只是想了解Keras层的实现。有没有一种方法可以将keras(任何层)作为独立层运行。 (Tensorflow后端)
图层:Conv2DTranspose或任何
答案 0 :(得分:0)
您可以提取keras中每一层的权重,并使用它来初始化相同类型的新层的权重。然后将此新层用作模型并进行预测。如果不是第一层,则必须重新创建所有层的模型,直到需要的层为止,然后使用经过训练的模型中的权重来初始化它们的权重,其余部分都相同。
答案 1 :(得分:0)
我找到了一种开发简单单层模型的方法。顺便说一句,谢谢您的帮助。
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')
答案 2 :(得分:0)
我是这样做的:
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]