【发布时间】:2018-09-21 17:38:28
【问题描述】:
输入是 1000 个特征的 3 个独立通道。我试图通过一个独立的 NN 路径传递每个通道,然后将它们连接成一个平面层。然后在 flatten 层上应用 FCN 进行二进制分类。 我正在尝试将多个 Dense 图层添加在一起,如下所示:
def 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:如果检测到循环。 第1311章 -> 1312 节点 = layer._inbound_nodes[node_index] 1313 1314 # 防止循环。
AttributeError: 'NoneType' 对象没有属性 '_inbound_nodes'
【问题讨论】:
-
您应该添加更多信息:例如,您要完成什么,数据集的性质,预处理...... model.summaty 的输出也很有用
-
输入为1000个观察的3个独立通道。我试图通过一个独立的 NN 路径传递每个通道,然后将它们连接成一个平面层。然后在 flatten 层上应用 FCN 进行二分类。
-
那么...为什么要添加而不是连接?公寓的大小会很不一样。
-
我应用了连接但我得到了同样的错误。我猜 Add() 在这里做同样的事情,因为输入是一维张量。
标签: python tensorflow keras