将Keras层的输出与标量相乘

将Keras层的输出与标量相乘,keras,keras-layer,tf.keras,Keras,Keras Layer,Tf.keras,如果这是一个结构不好的问题,请原谅。这恰好是我在这里的第一个问题 假设我有一个Keras输出层,我想用标量(比如5)乘以最后一个值(sigmoid激活的结果) (我在这里附上了一段代码片段。假设包含了所有必要的库/依赖项) 我尝试了这个,我得到了“元组索引超出范围”的错误。 如果有人能帮助我(即最后一层的输出与标量相乘),我将非常高兴。检查尺寸。x和m的尺寸不匹配。使用Lambda层而不是乘法。这肯定会解决您的问题。检查尺寸。x和m的尺寸不匹配。使用Lambda层而不是乘法。这肯定会解决您的问题

如果这是一个结构不好的问题,请原谅。这恰好是我在这里的第一个问题

假设我有一个Keras输出层,我想用标量(比如5)乘以最后一个值(sigmoid激活的结果)

(我在这里附上了一段代码片段。假设包含了所有必要的库/依赖项)

我尝试了这个,我得到了“元组索引超出范围”的错误。
如果有人能帮助我(即最后一层的输出与标量相乘),我将非常高兴。

检查尺寸。x和m的尺寸不匹配。使用Lambda层而不是乘法。这肯定会解决您的问题。

检查尺寸。x和m的尺寸不匹配。使用Lambda层而不是乘法。这肯定会解决您的问题。

如果您想使用乘法运算。尝试m=tf。将_转换为_张量([5])。其中m的维数为(1),非常感谢。如你所说,我会试试这个。如果你想使用乘法。尝试m=tf。将_转换为_张量([5])。其中m的维数为(1),非常感谢。我会照你说的做。
def create_model():
    inp = Input(shape=(561,))
    x = Dense(units=1024,input_dim=561)(inp)
    x = LeakyReLU(0.2)(x)
    x = Dropout(0.3)(x)
    x = Dense(units=512)(x)
    x = LeakyReLU(0.2)(x)
    x = Dropout(0.3)(x)
    x = Dense(units=256)(x)
    x = LeakyReLU(0.2)(x)

    x = Dense(units=1, activation='sigmoid')(x)
    
    m = tf.convert_to_tensor(5) #creating a tensor of value = 5
    
    o = Multiply()([x, m]) #trying to multiply x with o. Doesn't work though!

    model = Model(inputs=[inp], outputs=[o])
    
    model.compile(loss='binary_crossentropy', optimizer = Adam(lr=0.0002, beta_1=0.5))
    
    return model

model = create_model()
model.summary()