Thank you, larcane and thecho7!
I finally succeed to train the model! thanks.
The correct shape of outputs and label(when batchsize = 1)
is [1x2] and [1x1]. (when using CrossEntropyLoss)
And here is my train code for those who may need(binary classification) 

criterion = nn.CrossEntropyLoss()

        for idx, (raw_data,  true_value) in enumerate(train_module):
                raw_data = raw_data.to(device).float()
                true_value= true_value.to(device)
                true_value= true_value.reshape(1)
                optimizer.zero_grad()
                outputs = model(raw_data)
                loss = criterion(outputs.float(), true_value.long())
                loss.backward()
                optimizer.step()