1

我正在测试 fastai 表格模型并得到意想不到的结果。基本上,我试图y = x * x使用基于随机 x 构建的输入数据帧进行预测。

from fastai.tabular import *

# Build input dataframe
SIZE = 10000
df = pd.DataFrame({'x': np.random.randn(SIZE)})
df['y'] = df['x'] ** 2

# Create data object
dep_var = 'y'
cont_names = ['x']
data = (TabularList.from_df(df, cont_names=cont_names)
                           .split_by_rand_pct(valid_pct=0.1)
                           .label_from_df(cols=dep_var, label_cls=FloatList)
                           .databunch())

# Create model and learn
learn = tabular_learner(data, layers=[200,100], metrics=rmse)
learn.fit_one_cycle(5)

#epoch  train_loss  valid_loss  root_mean_squared_error time
#0  0.706821    0.472120    0.467643    00:01
#1  0.275269    0.077311    0.271610    00:01
#2  0.194118    0.133515    0.325397    00:01
#3  0.176048    0.076927    0.187314    00:01
#4  0.163826    0.078179    0.207878    00:01


# Display result
row = df.sample(1).iloc[0]
print(row)
learn.predict(row)  

# Typically:
# x = -1.582047 / y = 2.502874 / predicted_y = 2.324813

我希望深度学习能表现得更好,所以我可能在这里做错了什么。

有人可以解释为什么我的结果如此糟糕吗?

4

1 回答 1

0

当你对这样的随机数分布求平方时,你最终会得到一些很小的 y 值,这可能会导致一些浮点算术问题,从而影响你的结果。

于 2019-09-27T23:49:40.533 回答