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

Scr*_*tch 5 python deep-learning keras tensorflow

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

我正在尝试优化我的训练管道并抓住瓶颈。

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

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

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
Run Code Online (Sandbox Code Playgroud)

有没有可能有一个更小的?返回一个常量是行不通的,因为它破坏了图形,而 keras 不允许这样做。

Dan*_*ler 2

import keras.backend as K
from keras.layers import Input, Lambda
from keras.models import Model

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

??

如果想法是建立一个不执行任何操作的模型,那么这似乎是最好的。
您也可以返回一个常量,您实际上不需要“训练”来查看您提出的内容,您只需“预测”即可。

model.predict_generator(....)
Run Code Online (Sandbox Code Playgroud)

另一个输出 1 类的模型

inp = Input((64,64,1))
out = Lambda(lambda x: x[:,0,0])(inp)
model = Model(inp,out)
Run Code Online (Sandbox Code Playgroud)