请问为什么我的all_features是330列的,少了一列,我查看了代码是一模一样的。有遇到相同情况的吗?
由于加州的数据集有summary,里面都是文字.使用all_features = pd.get_dummies(all_features, dummy_na=True, dtype=int)
会导致内存爆炸,我用32g内存依然会爆炸.所以我没有用哑变量处理,转而只训练纯数字维度的数据:all_features = all_features[numeric_features[1:]]
.这样结果是0.55211
.对比autogluon的0.1x的精度差了特别多.
我试了,因为你模型初始化的时候模型参数一般都是小于1的(初始化参数分布参考https://docs.pytorch.org/docs/stable/generated/torch.nn.Linear.html),所以你计算出来的pred都是小于1的,在log_mse里直接全部截断成1,导致梯度不能传播,模型无法训练
楼上应该是对的,试了下lr设的小训练特别慢。因为输入的数值相对于输出来说很小,所以模型的输出对输入的变化不太敏感,可以用大的lr而不会导致不收敛。常规的lr设置的小应该也是因为输出对输入的变化比较敏感。我一开始对标签也做了标准化,这样用常规的lr取值也能训练,而且收敛速度看起来比文章里的更快。