<つまづきメモ>loss関数がNaN値になる
評価関数(loss関数)がNaN値になる。
原因
- inputデータに,float32の最大値(232=2147483647)を超えるデータが存在した。 (売上高とかあるんだから当たり前ですよね…)
対策
- float64を使う
a = np.array([]) a.astype(float) a = pd.read_csv(path).values
2行目を差し込んだ。(a.astype(float))
配列ににnanは存在しなくなりましたが…
TypeError: Tensors in list passed to 'values' of 'ConcatV2' Op have types [float64, int32] that don't all match.
調査不足かもしれないが、どうやらtensorflowはfloat32しか対応していないみたい。なので別対応が必要?
* 常用対数を使う
if "証券コード" in df_marge.columns: df_code = df_marge["証券コード"] df_marge = pd.np.log10(df_marge) df_marge = df_marge.replace([np.inf, -np.inf], np.nan).fillna(0) df_marge["証券コード"] = df_code
これでうまくいきそうです。
夢中になってたらこんな時間になってしまった。(am3:00)