keras lstm重构pytorch

keras代码重构为pytorch,精度相差3个点
以下代码麻烦帮忙重构


from tensorflow.keras import initializers
with tf.device('/gpu:0 '):
    model = Sequential()
    model.add(tf.keras.layers.Masking(mask_value=0.,
                                       input_shape=(n_steps, n_features))) # skip the weeks without data
    model.add(LSTM(300, return_sequences=False,
                   dropout=0.1, recurrent_dropout=0.1))

    model.add(Dense(1,activation='sigmoid'))
    model.compile(loss = 'binary_crossentropy', optimizer=keras.optimizers.Adam(lr=0.01),metrics = METRICS)
    print(model.summary())

    batch_size = 100
  

    class_weight = {0: weight_for_0, 1: weight_for_1}

    history = model.fit(X_train, y_train, epochs = 100, batch_size=batch_size,
                        validation_data=(X_test, y_test),
   
                        verbose = 2, shuffle=True)#my_callbacks注释掉才可以跑完指定epoch

    results = model.evaluate(X_test, y_test)

torch. nn.LSTM(),本身自带就有啊,你重构是怎么重构的?