【问题标题】:expected np.ndarray (got DataFrame)预期的 np.ndarray(得到 DataFrame)
【发布时间】:2021-07-10 14:14:24
【问题描述】:

我想找出卷积运算的 output_size,但我正在努力将我的数据帧转换为张量。

output_size = torch.nn.Conv2d(3, 5, 5,stride=1, padding=3,    
                dilation=1, groups=1, bias=True, padding_mode='zeros')

fashion = torch.from_numpy(load_fashion)
input_ = torch.Tensor((fashion.values), dtype=torch.float)  


output = output_size(input_)

【问题讨论】:

  • 假设 load_fashion 是您的数据框,fashion = torch.from_numpy(load_fashion.values, dtype=torch.float) 应该就足够了。请注意,在传递给 Conv2d 之前,您还需要将张量重塑为 (batch_size, channel, H, W) 形状。

标签: python pytorch


【解决方案1】:

我无法完全理解您的问题,因为您的代码在您的问题中的格式不正确,但该错误只是预期的数据类型错误。

您需要将数据框转换为 np 数组。只需在数据框的末尾添加 .values 即可。因此,如果您的输入是这样的示例数据框:

df = pd.DataFrame({"Col1":[1,2,3,4], "Col2":[2,2,3,4]})

像这样将整个东西转换成一个 numpy 数组:

sample_array = df.values

或将一列转换为 np 数组,如下所示:

sample_array_2 = df["Col1"].values

更新: 正如 cmets 中所提到的,pandas 建议使用 .to_numpy(),因此请使用以下内容:

sample_array = df.to_numpy()

【讨论】:

  • pandas documentation 建议改用dataframe.to_numpy()
  • 啊,是的,你是对的。更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 2017-04-15
  • 2015-02-26
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多