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

そのような乱数の分布を 2 乗すると、結果に影響を与える可能性のある浮動小数点演算の問題につながる可能性のある y の小さな値が発生することになります。

于 2019-09-27T23:49:40.533 に答える