一、原始代码
data_list = data_list.cpu().numpy() #shape=(20000, 1, 1024)
data_list = pd.DataFrame(data_list)
data_list.to_excel('真实-X.xlsx')
报错 ValueError: Must pass 2-d input. shape=(20000, 1, 1024)
二、错误分析
我试图将一个形状为(20000, 1, 1024)的数据列表转换为pandas DataFrame
,然后保存为Excel文件。
因为to_excel需要2维输入
,所以报错了。
经过分析发现我的data_list是一个三维的tensor,
有20000个样本,每个样本是一个1x1024的向量
。
因此需要把它reshape成二维,有3种方法:
-
data_list = data_list.reshape(-1,1024)
-
data_list = data_list.squeeze()
-
data_list = data_list.reshape(20000,1024)
三、解决办法
data_list = data_list.cpu().numpy() #shape=(20000, 1, 1024)
data_list = data_list.reshape(-1,1024)
data_list = pd.DataFrame(data_list)
data_list.to_excel('真实-X.xlsx')
把三维tensor变成二维
就可以保存到excel表格中了。