输入是3个独立的通道,有1000个特征。我尝试通过一个独立的NN路径传递每个通道,然后将它们连接到一个平面层中。然后在平坦层应用FCN进行二值分类。 我试着把多个密集层放在一起,像这样:
定义tst_1():
inputs = Input((3, 1000, 1))
dense10 = Dense(224, activation='relu')(inputs[0,:,1])
dense11 = Dense(112, activation='relu')(dense10)
dense12 = Dense(56, activation='relu')(dense11)
dense20 = Dense(224, activation='relu')(inputs[1,:,1])
dense21 = Dense(112, activation='relu')(dense20)
dense22 = Dense(56, activation='relu')(dense21)
dense30 = Dense(224, activation='relu')(inputs[2,:,1])
dense31 = Dense(112, activation='relu')(dense30)
dense32 = Dense(56, activation='relu')(dense31)
flat = keras.layers.Add()([dense12, dense22, dense32])
dense1 = Dense(224, activation='relu')(flat)
drop1 = Dropout(0.5)(dense1)
dense2 = Dense(112, activation='relu')(drop1)
drop2 = Dropout(0.5)(dense2)
dense3 = Dense(32, activation='relu')(drop2)
densef = Dense(1, activation='sigmoid')(dense3)
model = Model(inputs = inputs, outputs = densef)
model.compile(optimizer=Adam(), loss='binary_crossentropy', metrics=['accuracy'])
return model
model = tst_1()
model.summary()
但我有个错误:
/usr/local/lib/python2.7/dist-packages/keras/engine/network.pyc in build_map(tensor, finished_nodes, nodes_in_progress, layer, node_index, tensor_index) 1310 ValueError: if a cycle is detected. 1311 """ -> 1312 node = layer._inbound_nodes[node_index] 1313 1314 # Prevent cycles.
AttributeError: 'NoneType' object has no attribute '_inbound_nodes'
问题是使用
inputs[0,:,1]
分割输入数据不是作为keras层来完成的。在您需要创建一个Lambda层才能完成此任务。在
以下代码:
正确地创建了你想要的网络。在
多亏了@卡塔雷在
我是这样解决的:
相关问题 更多 >
编程相关推荐