如何修复"Boolean value of Tensor with more than one value is ambiguous"?



我正试图创建一个模型,但我得到了一个RuntimeError"具有一个以上值的张量的布尔值是不明确的";。我已经在其他帖子上搜索过了,但可以找到一个有效的解决方案,所以这是我自己的尝试。

我正在学习一个教程,该教程使用教程数据集。代码如下:

#%% import file
df = pd.read_csv('coordinates.csv', sep=';', engine='python')
df
#%% cleanup
df=df[[ 'CATEGORY','LEFT_ANGLE']]
print(df)
df.apply(pd.to_numeric)
#%%
from tkinter import Variable
import numpy as np
from sklearn.preprocessing import MinMaxScaler

def sliding_windows(data, seq_length):
x = []
y = []
for i in range(len(data)-seq_length-1):
_x = data[i:(i+seq_length)]
_y = data[i+seq_length]
x.append(_x)
y.append(_y)
return np.array(x),np.array(y)
#%%
sc = MinMaxScaler()
training_data = sc.fit_transform(df)
seq_length = 4
x, y = sliding_windows(training_data, seq_length)
train_size = int(len(y) * 0.67)
test_size = len(y) - train_size
dataX = Variable(torch.Tensor(np.array(x)))
dataY = Variable(torch.Tensor(np.array(y)))
trainX = Variable(torch.Tensor(np.array(x[0:train_size])))
trainY = Variable(torch.Tensor(np.array(y[0:train_size])))
testX = Variable(torch.Tensor(np.array(x[train_size:len(x)])))
testY = Variable(torch.Tensor(np.array(y[train_size:len(y)])))

这是我想用于训练的DataFrame和错误:

[300 rows x 2 columns]
6
CATEGORY    LEFT_ANGLE
0   0   160
1   0   162
2   0   160
3   0   157
4   0   146
... ... ...
295 4   163
296 4   176
297 4   132
298 4   150
299 4   176
300 rows × 2 columns
Cleanup done
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-12-2bfe2346f838> in <module>
8 test_size = len(y) - train_size
9 
---> 10 dataX = Variable(torch.Tensor(np.array(x)))
11 dataY = Variable(torch.Tensor(np.array(y)))
12 

331             raise TypeError("name must be a string")
332         global _varnum
--> 333         if not master:
334             master = _default_root
335         self._root = master._root()
RuntimeError: Boolean value of Tensor with more than one value is ambiguous

首先,我不明白类Variable是用来做什么的,也不明白张量为什么不接受我的数组。我希望有人能帮助我。提前谢谢,如果我的英语不是最好的,我很抱歉。

简短回答
删除Variable()

解释
我相信你的答案就在你的问题中。如果您不知道变量是什么,为什么要使用它?但更重要的是,您正在从tkinter导入它,这是一个接口包,我很确定这不是您想要的。

你想要的是用火炬里的那个。我在文档中寻找它,但它实际上已被弃用,torch中的Variable()API现在返回Tensor,因此不再有用。参见此处

相关内容

最新更新