MSE_l = mean_squared_error(test_labels.cpu(), pre_array) AttributeError: 'numpy.ndarray' object has no attribute 'cpu'
时间: 2024-03-08 16:50:15 浏览: 36
这个错误提示表明你正在使用一个Numpy数组,但是它没有`cpu`属性。`cpu`是PyTorch Tensor对象的属性,而不是Numpy数组的属性。因此,你需要将Numpy数组转换为PyTorch Tensor对象,然后才能使用`cpu`属性。
你可以使用`torch.from_numpy()`方法将Numpy数组转换为PyTorch张量。这样,你就可以使用`cpu`属性了。例如:
```
import torch
# 将Numpy数组转换为PyTorch张量
test_labels_tensor = torch.from_numpy(test_labels)
# 进行预测
pre_array = ...
# 计算均方误差
MSE_l = torch.nn.functional.mse_loss(test_labels_tensor, pre_array).item()
```
注意,在计算均方误差时,你需要使用`torch.nn.functional.mse_loss()`函数。它会返回一个张量,而不是一个Numpy数组。因此,你需要使用`item()`方法将张量转换为标量。
相关问题
MSE1 = mean_squared_error(test_labels, pre_array)
`mean_squared_error` 是 scikit-learn 库中用于计算均方误差(MSE)的函数。使用方法如下:
```python
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
```
其中,`y_true` 和 `y_pred` 分别是真实值和预测值。返回的是均方误差(MSE)。
在你的代码中,`test_labels` 和 `pre_array` 分别是真实值和预测值,所以可以用以下方式计算 MSE:
```python
from sklearn.metrics import mean_squared_error
MSE1 = mean_squared_error(test_labels, pre_array)
```
其中,`MSE1` 就是均方误差。
plt.figure(figsize=(40,20)) if forecasting_model == 'multi_steps': plt.plot(pre_array[0], 'g') plt.plot(test_labels[0].cpu(), "r") plt.show() else: plt.plot(pre_array, 'g') plt.plot(test_labels.cpu(), "r") plt.show() MSE_l = mean_squared_error(test_labels.cpu(), pre_array) MAE_l = mean_absolute_error(test_labels.cpu(), pre_array) MAPE_l = mean_absolute_percentage_error(test_labels.cpu(), pre_array) R2 = r2_score(test_labels.cpu(), pre_array) print('MSE loss=%s'%MSE_l) print('MAE loss=%s'%MAE_l) print('MAPE loss=%s'%MAPE_l) print('R2=%s'%R2)
这段代码的作用是绘制预测结果与真实标签值的折线图,并计算预测结果的MSE、MAE、MAPE和R2指标。其中,`pre_array`是模型的预测结果,`test_labels`是真实标签值,`forecasting_model`是一个字符串变量,表示预测模型的类型。如果预测模型是`multi_steps`(多步预测模型),则绘制预测结果的第一条线,否则绘制整个预测结果序列的折线图。然后,绘制真实标签值的折线图,并显示图像。接着,计算MSE、MAE、MAPE和R2指标,并将它们打印出来。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)