【发布时间】:2022-01-19 07:36:35
【问题描述】:
我正在尝试使用 PCA 执行降维,其中outputs 是张量列表,其中每个张量的形状为 (1, 3, 32,32)。代码如下:
from sklearn.decomposition import PCA
pca = PCA(10)
pca_result = pca.fit_transform(output)
但无论我尝试什么,我都会不断收到此错误:
ValueError: only one element tensors can be converted to Python scalars
我知道大小为 (1,3, 32,32) 的张量造成了问题,因为它正在寻找错误所说的 1 个元素,但不知道如何解决它。 我尝试使用以下代码通过循环输出来展平每个张量(不知道这是否是解决此问题的正确方法),但它会导致 pca 出错:
new_outputs = []
for i in outputs:
for j in i:
j = j.cpu()
j = j.detach().numpy()
j = j.flatten()
new_outputs.append(j)
pca_result = pca.fit_transform(new_output)
如果有人能帮助解决这个错误,无论我采用的扁平化方法是否正确,我将不胜感激。
【问题讨论】: