CNNembedding.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:CCIR 作者: xiaogang00 项目源码 文件源码
def cnn(height_a, height_q, count):
    question_input = Input(shape=(height_q, 1), name='question_input')
    embedding_q = Embedding(input_dim=count, output_dim=128,  input_length=height_q)(question_input)
    re_q = Reshape((height_q, 128, 1), input_shape=(height_q,))(embedding_q)
    conv1_Q = Conv2D(128, (2, 128), activation='sigmoid', padding='valid',
                     kernel_regularizer=regularizers.l2(0.02),
                     kernel_initializer=initializers.random_normal(mean=0.0, stddev=0.05))(re_q)
    Max1_Q = MaxPooling2D((29, 1), strides=(1, 1), padding='valid')(conv1_Q)
    F1_Q = Flatten()(Max1_Q)
    Drop1_Q = Dropout(0.5)(F1_Q)
    predictQ = Dense(64, activation='relu',
                     kernel_regularizer=regularizers.l2(0.02),
                     kernel_initializer=initializers.random_normal(mean=0.0, stddev=0.05))(Drop1_Q)


    # kernel_initializer=initializers.random_normal(mean=0.0, stddev=0.01)
    answer_input = Input(shape=(height_a, 1), name='answer_input')
    embedding_a = Embedding(input_dim=count, output_dim=128,  input_length=height_a)(answer_input)
    re_a = Reshape((height_a, 128, 1), input_shape=(height_a,))(embedding_a)
    conv1_A = Conv2D(128, (2, 128), activation='sigmoid', padding='valid',
                     kernel_regularizer=regularizers.l2(0.02),
                     kernel_initializer=initializers.random_normal(mean=0.0, stddev=0.05))(re_a)
    Max1_A = MaxPooling2D((399, 1), strides=(1, 1), padding='valid')(conv1_A)
    F1_A = Flatten()(Max1_A)
    Drop1_A = Dropout(0.5)(F1_A)
    predictA = Dense(64, activation='relu',
                     kernel_regularizer=regularizers.l2(0.02),
                     kernel_initializer=initializers.random_normal(mean=0.0, stddev=0.05))(Drop1_A)

    predictions = merge([predictA, predictQ], mode='dot')
    model = Model(inputs=[question_input, answer_input],
                  outputs=predictions)

    model.compile(loss='mean_squared_error',
                  optimizer=Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0))
    # model.compile(loss='mean_squared_error',
    #             optimizer='nadam')
    return model
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号