Умножьте вывод слоя Keras на скаляр - PullRequest
1 голос
/ 01 августа 2020

Простите меня, если это плохо сформулированный вопрос. Это мой первый вопрос. 1004 * (Я прикрепил сюда фрагмент кода. Предположим, что включены все необходимые библиотеки / зависимости)

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()

Я пробовал это и получаю ошибку «индекс кортежа вне допустимого диапазона». Я был бы рад, если бы мне кто-нибудь помог (т.е. умножить результат последнего слоя на скаляр)

1 Ответ

0 голосов
/ 01 августа 2020

Проверить размеры. Размеры x и m не совпадают. Используйте слой Lambda вместо Multiply. Это обязательно решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...