Beispiel #1
0
                       att_filter_size=att_filter_size,
                       att_filter_num=att_filter_num,
                       sos_id=sos_id, 
                       att_temperature=att_temperature,
                       enc_num_layers=enc_num_layers,
                       dec_num_layers=dec_num_layers,
                       enc_bidirectional=enc_bidirectional,
                       enc_sub_sample=enc_sub_sample, 
                       enc_rnn_type=enc_rnn_type)
    
    # モデルのパラメータを読み込む
    model.load_state_dict(torch.load(model_file))

    # 訓練/開発データのデータセットを作成する
    test_dataset = SequenceDataset(feat_scp_test,
                                   label_test,
                                   feat_mean,
                                   feat_std)

    # 評価データのDataLoaderを呼び出す
    test_loader = DataLoader(test_dataset,
                             batch_size=batch_size,
                             shuffle=False,
                             num_workers=4)

    # CUDAが使える場合はモデルパラメータをGPUに,
    # そうでなければCPUに配置する
    if torch.cuda.is_available():
        device = torch.device('cuda')
    else:
        device = torch.device('cpu')
    model = model.to(device)
                       enc_num_layers=enc_num_layers,
                       dec_num_layers=dec_num_layers,
                       enc_bidirectional=enc_bidirectional,
                       enc_sub_sample=enc_sub_sample,
                       enc_rnn_type=enc_rnn_type)
    print(model)

    # オプティマイザを定義
    optimizer = optim.Adadelta(model.parameters(),
                               lr=initial_learning_rate,
                               rho=0.95,
                               eps=1e-8,
                               weight_decay=0.0)

    # 訓練/開発データのデータセットを作成する
    train_dataset = SequenceDataset(feat_scp_train, label_train, feat_mean,
                                    feat_std)

    # 開発データのデータセットを作成する
    dev_dataset = SequenceDataset(feat_scp_dev, label_dev, feat_mean, feat_std)

    # 訓練データのDataLoaderを呼び出す
    # 訓練データはシャッフルして用いる
    #  (num_workerは大きい程処理が速くなりますが,
    #   PCに負担が出ます.PCのスペックに応じて
    #   設定してください)
    train_loader = DataLoader(train_dataset,
                              batch_size=batch_size,
                              shuffle=True,
                              num_workers=4)
    # 開発データのDataLoaderを呼び出す
    # 開発データはデータはシャッフルしない
Beispiel #3
0
                  dim_out=dim_out, 
                  num_layers=num_layers)
    print(model)

    # オプティマイザを定義
    # ここでは momentum stochastic gradient descent
    # を使用
    optimizer = optim.SGD(model.parameters(), 
                          lr=initial_learning_rate,
                          momentum=0.99)

    # 訓練データのデータセットを作成する
    # padding_indexはdim_out以上の値に設定する
    train_dataset = SequenceDataset(train_feat_scp,
                                    train_label_file,
                                    feat_mean,
                                    feat_std,
                                    pad_index,
                                    splice)
    # 開発データのデータセットを作成する
    dev_dataset = SequenceDataset(dev_feat_scp,
                                  dev_label_file,
                                  feat_mean,
                                  feat_std,
                                  pad_index,
                                  splice)
    
    # 訓練データのDataLoaderを呼び出す
    # 訓練データはシャッフルして用いる
    #  (num_workerは大きい程処理が速くなりますが,
    #   PCに負担が出ます.PCのスペックに応じて
    #   設定してください)