如何在Keras中创建虚拟模型?

时间:2018-11-30 13:27:31

标签: python tensorflow keras deep-learning

我正在使用keras,并尝试在64x64图像上训练分类器。

我正在尝试优化培训渠道并抓住瓶颈。

为此,我正在尝试创建更简单的Keras模型,以使我知道整个过程(加载图像,数据增强...)花费的时间非常少。

到目前为止,我设法写了:

def create_network_dummy():
  INPUT_SHAPE = (64, 64, 1)
  inputs = Input(INPUT_SHAPE)
  out = MaxPooling2D(pool_size = (1,1), strides=(64,64), 1)(inputs)
  model = Model(inputs=[inputs], outputs=[out])
  return model

有没有可能更小的?返回常量不会这样做,因为它会破坏图形,而keras将不允许这样做。

2 个答案:

答案 0 :(得分:1)

import keras.backend as K

inp = Input((64,64,1))
out = Lambda(lambda x: K.identity(x))(inp)
model = Model(inp,out) #You could even try Model(inp,inp)

??

如果要创建一个不执行任何操作的模型,这似乎是最好的。
您也可以返回一个常数,您真的不需要“训练”即可看到您的建议,只需“预测”即可。

model.predict_generator(....)

另一个模型可以输出1类

inp = Input((64,64,1))
out = Lambda(lambda x: x[:,0,0])(inp)
model = Model(inp,out)

答案 1 :(得分:0)

我认为甚至不需要使用K.identity

inp = Input((64, 64, 1))
out = Lambda(lambda x: x)(inp)
model = Model(inp, out)