0
点赞
收藏
分享

微信扫一扫

loss回传遇到的类型错误

闲嫌咸贤 2022-02-19 阅读 30

RuntimeError: expected dtype Float but got dtype Long (validate_dtype at ..\aten\src\ATen\native\TensorIterator.cpp:143)
(no backtrace available)

 loss=criterion(outputs.float(),targets.float())

.long() .float() .double()

val_mape_loss=[]
val_mse_loss=[] 
train_loss=[]
for epoch in tqdm(range(epochs)):
    train_epoch_loss=[]
    for i in range(0,1,1):# len(train_x)
#             optimizer.zero_grad()
            inputs=train_x[i] 
            targets=train_y[i]
            inputs = torch.tensor(inputs).to(device)
            targets = torch.tensor(targets).to(device) 
            inputs= inputs.unsqueeze(0).transpose(0,1)
            outputs=model(inputs)
#             print(outputs.shape)
#             print(targets.shape)
            loss=criterion(outputs.float(),targets.float())
            print("loss:",loss)
#             loss=torch.tensor(loss.item(),requires_grad=True)  
#             mape_loss=mape(targets.cpu().detach().numpy().reshape(1,-1),outputs.cpu().detach().numpy().reshape(1,-1))
#             print("mape_loss",mape_loss)
            loss.backward()
            optimizer.step()
            train_epoch_loss.append(loss.item())
    test_mse_loss,test_mape_loss=test(model)
    
    val_mse_loss.append(test_mse_loss)
    val_mape_loss.append(test_mape_loss)
    train_loss.append(np.mean(np.array(train_epoch_loss)))
    print("np.mean(np.array(train_epoch_loss))",np.mean(np.array(train_epoch_loss))," test_mse_loss",test_mse_loss,"----------")
举报

相关推荐

0 条评论