相关疑难解决方法(0)

keras 模型中损失的 nan 值

我有以下数据形状

X_Train.shape,Y_Train.shape
Out[52]: ((983, 19900), (983,))
X_Test.shape,Y_Test.shape
Out[53]: ((52, 19900), (52,))
Run Code Online (Sandbox Code Playgroud)

我正在运行一个简单的二元分类器,因为 Y_train 和 Y_test 可以是 1 或 2

import  keras
import  tensorflow as tf
from keras import  layers
from keras.layers import Input, Dense
from keras.models import Model,Sequential
import numpy as np
from  keras.optimizers import  Adam

myModel = keras.Sequential([
    keras.layers.Dense(1000,activation=tf.nn.relu,input_shape=(19900,)),
    keras.layers.Dense(64, activation=tf.nn.relu),
    keras.layers.Dense(32, activation=tf.nn.relu),
    keras.layers.Dense(1, activation=tf.nn.softmax)
])

myModel.compile(optimizer='adam', loss='sparse_categorical_crossentropy',metrics=['accuracy'])
myModel.fit(X_Train, Y_Train, epochs=100,batch_size=1000)
test_loss,test_acc=myModel.evaluate(X_Test,Y_Test)
Run Code Online (Sandbox Code Playgroud)

代码的输出

训练损失和准确性

Epoch 1/100
983/983 [==============================] - 1s 1ms/step - loss: nan - acc: 0.4608
Epoch 2/100 …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow

8
推荐指数
3
解决办法
7045
查看次数

选择每个时期的步数

如果我想用train_generator训练模型,选择之间有明显的区别

  • 10个时期,每个500个步骤

  • 100个纪元,每个50个步骤

目前,我正在训练10个纪元,因为每个纪元都需要很长时间,但是任何显示改进的图形看起来都非常“跳跃”,因为我只有10个数据点。我想如果我使用100个纪元,我可以获得一个更平滑的图形,但是我想首先知道这个图形是否有不利之处

machine-learning keras tensorflow

6
推荐指数
3
解决办法
7609
查看次数

损失:执行回归时 Keras 中的 NaN

我正在尝试预测连续值(第一次使用神经网络)。我已经标准化了输入数据。我不明白为什么我loss: nan从第一个纪元开始就得到输出。

我阅读并尝试了以前对同一问题的答案中的许多建议,但没有一个对我有帮助。我的训练数据形状是:(201917, 64)。这是我的代码:

model = Sequential()
model.add(Dense(100, input_dim=X.shape[1], activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(100, activation='relu'))

# Output layer
model.add(Dense(1, activation='linear'))

# Construct the neural network inside of TensorFlow
model.compile(loss='mean_squared_error', optimizer='Adam')

# train the model
model.fit(X_train, y_train, epochs=10, batch_size=32,
shuffle=True, verbose=2)
Run Code Online (Sandbox Code Playgroud)

python linear-regression deep-learning keras tensorflow

5
推荐指数
1
解决办法
1万
查看次数

Keras 在训练分类 LSTM 序列到序列模型时给出 nan

我正在尝试编写一个 Keras 模型(使用 Tensorflow 后端),该模型使用 LSTM 来预测序列的标签,就像在词性标记任务中一样。我写的模型返回nan所有​​训练时期和所有标签预测的损失。我怀疑我的模型配置不正确,但我无法弄清楚我做错了什么。

\n\n

完整的程序在这里。

\n\n
from random import shuffle, sample\nfrom typing import Tuple, Callable\n\nfrom numpy import arange, zeros, array, argmax, newaxis\n\n\ndef sequence_to_sequence_model(time_steps: int, labels: int, units: int = 16):\n    from keras import Sequential\n    from keras.layers import LSTM, TimeDistributed, Dense\n\n    model = Sequential()\n    model.add(LSTM(units=units, input_shape=(time_steps, 1), return_sequences=True))\n    model.add(TimeDistributed(Dense(labels)))\n    model.compile(loss=\'categorical_crossentropy\', optimizer=\'adam\')\n    return model\n\n\ndef labeled_sequences(n: int, sequence_sampler: Callable[[], Tuple[array, array]]) -> Tuple[array, array]:\n    """\n    Create training data for a sequence-to-sequence labeling model.\n\n    The features are an …
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras

5
推荐指数
1
解决办法
2619
查看次数