【问题标题】:Keras model to Theano functionKeras 模型到 Theano 函数
【发布时间】:2016-05-26 17:32:23
【问题描述】:

我正在尝试将经过训练的模型(下面给出的代码)转换为 theano 函数。但我收到以下错误:AttributeError: 'Dense' object has no attribute 'output'

我的模型的代码:

model = Sequential()

model.add(Convolution2D(32, 3, 3, border_mode='same',
                        input_shape=(img_channels, img_rows, img_cols)))
model.add(Activation('relu'))
model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Convolution2D(64, 3, 3, border_mode='same'))
model.add(Activation('relu'))
model.add(Convolution2D(64, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes))
model.add(Activation('softmax'))

# let's train the model using SGD + momentum (how original).
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])

我用于将 Keras 模型转换为 theano 函数的代码如下this tutorial

 from keras import backend as K
    get_last_layer_output = K.function([model.layers[0].input],
                                       [model.layers[-1].output])
    y=f(patches)

谁能告诉我该怎么做?

【问题讨论】:

  • 嘿 - 请指定您使用的 Keras 版本。自 1.0 版以来,实施方面发生了很多变化。
  • 我用的是最新版的keras和Theano

标签: python deep-learning keras


【解决方案1】:

试试model.layers[-1].get_output(train=False)original Keras tutorial 可能已过时。

【讨论】:

  • 现在出现另一个错误。在第二行中,即 y=f(patches)。错误显示 AssertionError :assert type(inputs) in {list, tuple}。
  • @AvijitDasgupta y=f([patches]) 怎么样?
  • 是的,是的!我已经将其更改为 y=f([patches])。让我试试,我会告诉你的:)
  • 如何指定批量大小?变量补丁太大,无法放入我的 GPU 内存。 ://
  • 您必须手动处理批处理构造,方法是在 for 循环中调用您的函数
猜你喜欢
  • 2016-09-10
  • 2016-09-11
  • 2016-03-11
  • 2017-12-19
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 2017-06-27
  • 1970-01-01
相关资源
最近更新 更多