我有以下数据形状
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) 如果我想用train_generator训练模型,选择之间有明显的区别
和
目前,我正在训练10个纪元,因为每个纪元都需要很长时间,但是任何显示改进的图形看起来都非常“跳跃”,因为我只有10个数据点。我想如果我使用100个纪元,我可以获得一个更平滑的图形,但是我想首先知道这个图形是否有不利之处
我正在尝试预测连续值(第一次使用神经网络)。我已经标准化了输入数据。我不明白为什么我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) 我正在尝试编写一个 Keras 模型(使用 Tensorflow 后端),该模型使用 LSTM 来预测序列的标签,就像在词性标记任务中一样。我写的模型返回nan所有训练时期和所有标签预测的损失。我怀疑我的模型配置不正确,但我无法弄清楚我做错了什么。
完整的程序在这里。
\n\nfrom 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)