You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中float64转float32失败,求助解决方法

解决Pandas与PyTorch中类型转换不生效的问题

问题根源

Pandas的astype()和PyTorch的to()都不会直接修改原对象,而是返回一个类型转换后的新实例。你没有将转换结果重新赋值给原变量,所以原数据的类型始终保持不变。

修正后的代码

Pandas部分

from torch import nn
import torch
import pandas as pd
import numpy as np

df = pd.DataFrame([[1.1, 2.1], [3.1, 4.1],[5.1,6.1]], columns=['col1', 'col2'])
# 将转换结果赋值回原df,或赋值给新变量
df = df.astype('float32')
print(df.dtypes)
# 输出:
# col1    float32
# col2    float32
# dtype: object

PyTorch部分

a = torch.tensor(df.loc[1][['col1']])
# 将to()的结果重新赋值给a
a = a.to(torch.float32)
print(a)
# 输出:tensor([3.1000], dtype=torch.float32)

额外优化

如果不想覆盖原DataFrame,可以把转换结果存到新变量:df_float32 = df.astype('float32');PyTorch也支持创建张量时直接指定类型,省去后续转换步骤:

a = torch.tensor(df.loc[1][['col1']].values, dtype=torch.float32)
print(a.dtype)  # torch.float32

内容的提问来源于stack exchange,提问作者Stocavista

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 05:42:33