2017-04-01 5 views
2

ケラでレイヤを追加する際に問題があるようです。以前のケラでレイヤを追加していますか? - Conv2D 'オブジェクトに属性がありません' is_placeholder '

例:

import keras 
from keras.layers.merge import Concatenate 
from keras.models import Model 
from keras.layers import Input, Dense 
from keras.layers import Dropout 
from keras.layers.core import Dense, Activation, Lambda, Reshape,Flatten 
from keras.layers import Conv2D, MaxPooling2D, Reshape, ZeroPadding2D 

input_img = Input(shape=(3, 6, 3)) 

conv2d_1_1 = Conv2D(filters = 32, kernel_size = (3,3) , padding = "same" , activation = 'relu' , name = "conv2d_1_1")(input_img) 
conv2d_2_1 = Conv2D(filters = 64, kernel_size = (3,3) , padding = "same" , activation = 'relu')(conv2d_1_1) 
conv2d_3_1 = Conv2D(filters = 64, kernel_size = (3,3) , padding = "same" , activation = 'relu')(conv2d_2_1) 
conv2d_4_1 = Conv2D(filters = 32, kernel_size = (1,1) , padding = "same" , activation = 'relu')(conv2d_3_1) 
conv2d_4_1_flatten = Flatten()(conv2d_4_1) 

conv2d_1_2 = Conv2D(filters = 32, kernel_size = (3,3) , padding = "same" , activation = 'relu' , name = "conv2d_1_2")(input_img) 
conv2d_2_2 = Conv2D(filters = 64, kernel_size = (3,3) , padding = "same" , activation = 'relu')(conv2d_1_2) 
conv2d_3_2 = Conv2D(filters = 64, kernel_size = (3,3) , padding = "same" , activation = 'relu')(conv2d_2_2) 
conv2d_4_2 = Conv2D(filters = 32, kernel_size = (1,1) , padding = "same" , activation = 'relu')(conv2d_3_2) 
conv2d_4_2_flatten = Flatten()(conv2d_4_2) 


merge = keras.layers.concatenate([conv2d_4_1_flatten, conv2d_4_2_flatten]) 

dense1 = Dense(100, activation = 'relu')(merge) 
dense2 = Dense(50,activation = 'relu')(dense1) 
dense3 = Dense(1 ,activation = 'softmax')(dense2) 


model = Model(inputs = [conv2d_1_1 , conv2d_1_2] , outputs = dense3) 
model.compile(loss="crossentropy", optimizer="adam") 

print model.summary() 

なぜ私はこのように私の層を追加することはできませんよ? 入力は私が手作業で(3,6,3)の形に区切った画像です。

答えて

1

あなたの入力が正しくありません。あなた自身が入力したものがあなたの画像です。モデルを作成する方法を変更します。

model = Model(inputs = input_img , outputs = dense3) 

これは動作するはずです。

関連する問題