Keras损失和val_损失的顺序NaN值

2024-05-13 14:30:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些问题我自己解决不了。我对ML和Keras的顺序模型非常陌生

问题: 我只会因为拟合过程中的损失和准确性而得到NaN() 进一步说,当我尝试预测时,我只是得到了预测的NaNs

我的数据定义为包含目标的数据(85802,223)

*更新: 问题是,在清除NaN之后,我创建了新的NaN值

datas.dropna(inplace=True) <===== This have switched
labels = datas.columns
datas['target'] = datas['close'].shift(-4) <==== With this

相当愚蠢的问题。。。谢谢你们

import pandas as pd
import numpy as numpy
from keras.layers import Dense, Dropout, Activation, Flatten,Reshape
from keras.layers import Conv1D, MaxPooling1D, LeakyReLU
from keras.utils import np_utils
from keras.layers import GRU,CuDNNGRU
from keras.callbacks import CSVLogger, ModelCheckpoint
from sklearn.model_selection import train_test_split
from tensorflow.keras.layers.experimental import preprocessing
import matplotlib.pyplot as plt

from tensorflow import keras
from tensorflow.keras.models import Sequential
import tensorflow as tf

import h5py
import os
import pandas as pd
datas = pd.read_csv("D:/freqtrade/user_data/ML/New_Approach_16_08_2021/csv/ADA_USDT.csv")

datas.drop(columns=["date"], inplace=True)
print(datas.isna().sum())
datas.dropna(inplace=True)
labels = datas.columns
datas['target'] = datas['close'].shift(-4)
target = datas['target']

datas = datas[:].values


X_train, X_test, y_train, y_test = train_test_split(datas, target, test_size=0.33)

X_train = tf.convert_to_tensor(X_train, dtype=tf.float32)
X_test = tf.convert_to_tensor(X_test, dtype=tf.float32)


def build_and_compile_model():
    model = Sequential()
    model.add(Dense(200, input_shape=(222,), activation="relu"))
    # model.add(Dropout(0.2))
    model.add(Dense(180, activation="tanh"))
    model.add(Dense(100, activation="relu"))
    model.add(Dense(64, activation='relu'))
    model.add(Dense(12, activation='relu'))
    model.add(Dense(1))

    model.compile(loss='mse', metrics=['accuracy'], 
                optimizer='adam')

    return model

dnn_model = build_and_compile_model()

history = dnn_model.fit(
    X_train, y_train,
    validation_split=0.2,
    verbose=1, epochs=2, batch_size=32)
    
dnn_model.summary()

history.model.save('dnn_model2')
X_test.columns = labels
test_predictions = history.model.predict(X_test)

print(test_predictions)



1438/1438 [==============================] - 6s 4ms/step - loss: nan - accuracy: 0.0000e+00 - val_loss: nan - val_accuracy: 0.0000e+00
Epoch 2/2
1438/1438 [==============================] - 6s 4ms/step - loss: nan - accuracy: 0.0000e+00 - 

Tags: columnsfromtestimportaddtargetmodellayers