Функция потери не отображается

Я хочу начать пробовать свои силы в нейронных сетях и нашел синтаксис керас очень простым. Моя установка - X_train - массив формы (3516, 6), а y_train - формы (3516,)

X_train выглядит так:

[[ 888.          900.5         855.          879.311       877.00266667
   893.5008    ]
 [ 875.          878.5         840.          880.026       874.56933333
   890.7948    ]
 [ 860.          870.          839.5         880.746       870.54333333
   887.6428    ]....]

это ввод 6 частей финансовых данных для прогнозирования одного выхода. Я знаю, что это не будет точным, но это заставит меня начать что-то, по крайней мере, прежде, чем я перейду к RNN. Моя проблема в том, что функция потерь в каждой эпохе показывает nan, точность показывает 0%, validation_accuracy показывает ноль процентов, как если бы скажем, что данные даже не передаются через модель, я имею в виду, даже если это плохая модель с плохими входными данными, даже если это должно быть представлено как право с большими потерями? вот модель:(см. ниже)

В любом случае, ребята, я уверен, что я делаю что-то не так, и был бы очень признателен, ребята, большое спасибо

РЕДАКТИРОВАТЬ: ПОЛНЫЙ РАБОЧИЙ КОД:

def load_data(keyword):

    df = pd.read_csv('%s_x.csv' %keyword)
    df2 = pd.read_csv('%s_y.csv' %keyword)

    df2 = df2['label']

    try:
        df.drop('Unnamed: 0', axis = 1, inplace=True)
    except:
        print('wouldnt let drop unnamed column')

    X = df.as_matrix()
    y = df2.as_matrix()

    X_len = len(X)
    test_size = 0.2
    test_split = int(test_size * X_len)
    X_train = X[:-test_split]
    y_train = y[:-test_split]

    X_test = X[-test_split:]
    y_test = y[-test_split:]

def keras():
    model = Sequential( [
        Dense(input_dim=3, output_dim=3),
        Dense(output_dim=60, activation='linear'),
        core.Dropout(p=0.1),
        Dense(60, activation='linear'),
        core.Dropout(p=0.1),
        Dense(1, activation='linear')
    ])
    return model


def training(epoch):
    #  start the program off by loading some data into it
    X_train, X_test, y_train, y_test = load_data('admiral')
    y_train = y_train.reshape(len(y_train), 1)
    y_test = y_test.reshape(len(y_test), 1)


    model = keras()


    # optimizer will go into the compile function
    # RMSpop is apparently a pretty decent choice for recurrent neural networks although we will start it on a simple nn too.
    rms = optimizers.RMSprop(lr=0.001, rho = 0.9, epsilon =1e-08)


    model.compile(optimizer= rms, loss='mean_squared_error ', metrics = ['accuracy'])
    model.fit(X_train, y_train, nb_epoch=epoch, batch_size =500, validation_split=0.01)

    score = model.evaluate(X_test, y_test, batch_size=50)
    print(score)

training(300)

1 ответ

Решение

Точность очень низкая, потому что нет смысла показывать точность, для задачи регрессии - больше для классификации

данные проходили через это было так низко, что это был ответ на вопрос Нана

Другие вопросы по тегам