【发布时间】:2020-08-26 18:03:44
【问题描述】:
我必须取 EfficientNet 的最后一个 conv 层的输出,然后计算 H = wT*x+b。我的 w 是 [49,49]。之后我必须在 H 上应用 softmax,然后进行元素乘法 Xì = Hi*Xi。 这是我的代码:
common_input = layers.Input(shape=(224, 224, 3))
x=model0(common_input) #model0 terminate with last conv layer of EfficientNet (7,7,1280)
x = layers.BatchNormalization()(x)
W = tf.Variable(tf.random_normal([49,49], seed=0), name='weight')
b = tf.Variable(tf.random_normal([49], seed=0), name='bias')
x = tf.reshape(x, [-1, 7*7,1280])
H = tf.matmul(W, x,transpose_a=True)
H = tf.nn.softmax(H)
#print(H.shape) (?,49,1280)
#print(x.shape) (?,49,1280)
x=tf.multiply(H, x)
p=layers.Dense(768, activation="relu")(x)
p=layers.Dense(8, activation="softmax", name="fc_out")(p)
model = Model(inputs=common_input, outputs=p)
但我收到此错误:“NoneType”对象没有属性“_inbound_nodes”
<ipython-input-12-6ce3217f045c> in build_model()
35 p=layers.Dense(8, activation="softmax", name="fc_out")(p)
36
---> 37 model = Model(inputs=common_input, outputs=p)
38
39 return model
AttributeError: 'NoneType' object has no attribute '_inbound_nodes'
【问题讨论】:
-
会不会和this有关?
-
我不这么认为。他试图将三个通道合并为一个,我试图修改conv层的输出矩阵,然后将其放入fc层中。
-
这个错误出现在哪一行?
-
如何导入
Model? -
我用这条线修改了我的帖子。放的太长了。最后一个错误点是: ValueError:如果检测到循环。 1392 """ -> 1393 node = layer._inbound_nodes[node_index] 1394 1395 # 防止循环。
标签: python tensorflow keras tf.keras conv-neural-network