discriminator.py 文件源码

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

项目:academic 作者: xinchrome 项目源码 文件源码
def train(self,sequences,labels,features,publish_years,pids,superparams,cut=None,predict_year=2000,max_iter=0,max_outer_iter=200):
        from keras.layers import Input, Dense, Masking, LSTM, Activation, Dropout, merge
        from keras.models import Model
        from keras.regularizers import l1,l2

        f = Input(shape=(1,len(features[0])),dtype='float')
        # features[paper][feature], sequences[paper][day][feature]
        k = Dense(len(sequences[0][0]),activation='relu',W_regularizer=l1(self.l1))(f)
        # k = merge([k,k],mode='concat',concat_axis=1)
        k1 = Dropout(0.5)(k)

        k2 = Input(shape=(len(sequences[0]),len(sequences[0][0])),dtype='float')

        g1 = merge([k1,k2],mode='concat',concat_axis=1)

        m1 = Masking(mask_value= -1.)(g1)

        n1 = LSTM(128,W_regularizer=l2(self.l2),dropout_W=0.5,dropout_U=0.5)(m1)
        n1 = Dense(2,activation='softmax')(n1)

        model = Model(inputs=[f,k2], outputs=[n1])
        model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['categorical_accuracy'])
        model.fit(
            [numpy.array([[f] for f in features]),numpy.array(sequences)], [numpy.array(labels)],
            epochs=500, batch_size=1,
            verbose=1,validation_split=0.2)
        self.params['model'] = model
        # embeddings = model.layers[1].W.get_value()
        return model
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号