修复错误预期的 2D 数组,而是在缩放器上获得 1D 数组



我正在测试一个.ipynb文件,其中包含使用自动编码器执行数据扩充的代码。您可以在以下链接中找到该文件:自动编码器数据增强示例

使用的数据集:wine.csv

我遇到的第一个错误是一个不存在的变量,它被重命名为:

# D_in = data_set.x.shape[1]
D_in = traindata_set.x.shape[1]
H = 50
H2 = 12
model = Autoencoder(D_in, H, H2).to(device)
optimizer = optim.Adam(model.parameters(), lr=1e-3)

稍后,我从以下代码中得到另一个错误:

scaler = trainloader.dataset.standardizer
recon_row = scaler.inverse_transform(recon_batch[0].cpu().numpy())
real_row = scaler.inverse_transform(testloader.dataset.x[0].cpu().numpy())

我得到以下错误,我无法解决:

ValueError: Expected 2D array, got 1D array instead:
array=[-1.1050762   0.59396696 -0.40257156  0.5084665  -0.3387986   0.5908352
0.6442218   0.7660801  -0.36749032  0.2818777  -0.06692128  0.49236417
0.7825899   0.8493577 ].
Reshape your data either using array.reshape(-1, 1) 
if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

我希望你能帮我发现它。

看起来inverse_transform需要一个矩阵。在您的代码中,您只传递了一个样本(行(,所以这不起作用。如果按照错误消息提示重新调整输入,则单元格将运行。

recon_row = scaler.inverse_transform(recon_batch[0].cpu().numpy().reshape(1, -1))
real_row = scaler.inverse_transform(testloader.dataset.x[0].cpu().numpy().reshape(1, -1))

既然你有两个形状为(1,14)的矩阵,你还需要更改下一个单元格,以便只使用矩阵中的第一个(也是唯一一个(样本:

df = pd.DataFrame(np.stack((recon_row[0], real_row[0])), columns = cols)

相关内容

  • 没有找到相关文章

最新更新