2016-05-26 13 views
2

私は訓練モデル(以下に示すコード)をtheano関数に変換しようとしています。しかし、私は次のエラーを受け取ります:AttributeError: 'Dense' object has no attribute 'output'Theano関数へのKerasモデル

私のモデルのコード:

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']) 

this tutorialに従うことによって、私はtheano機能にKerasモデルを変換するために使用していますコード:何をする

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

は、誰も私に教えてくださいすることができ?

+0

ちょっと - 使用しているKerasのバージョンを指定してください。バージョン1.0以降、実装には多くの変更がありました。 –

+0

最新バージョンのkerasとTheanoを使用しています –

答えて

1

Try model.layers[-1].get_output(train=False)original Keras tutorialは古くなっている可能性があります。

+0

別のエラーが発生しました。第2行i、e、y = f(パッチ)。エラーは、{list、tuple}のAssertionError:assert type(inputs)と表示されます。 –

+0

@AvijitDasgupta 'y = f([patches])'についてはどうですか? –

+0

はいはい!私はすでにy = f([patches])に変更しました。私は試してみましょうと私はあなたに知らせるでしょう:) –

関連する問題