Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras 如何避免损失:nan-acc:0.0000e+;00为CNN-LSTM?_Keras_Nan_Loss - Fatal编程技术网

Keras 如何避免损失:nan-acc:0.0000e+;00为CNN-LSTM?

Keras 如何避免损失:nan-acc:0.0000e+;00为CNN-LSTM?,keras,nan,loss,Keras,Nan,Loss,我正在尝试用CNN-LSTM进行三类分类,我已经在MATLAB上准备了我的数据,并使用以下代码进行训练。它适用于二元分类,我使用了二元交叉熵,但不适用于多类情况,我使用了稀疏分类交叉熵。我用nan表示损失,0.0000e+00表示准确性。这里怎么了 import os
 os.environ["CUDA_DEVİCE_ORDER"] = "PCI_BUS_ID" 
os.environ["CUDA_VISIBLE_DEVICES"] =

我正在尝试用CNN-LSTM进行三类分类,我已经在MATLAB上准备了我的数据,并使用以下代码进行训练。它适用于二元分类,我使用了二元交叉熵,但不适用于多类情况,我使用了稀疏分类交叉熵。我用nan表示损失,0.0000e+00表示准确性。这里怎么了

import os

os.environ["CUDA_DEVİCE_ORDER"] = "PCI_BUS_ID"

os.environ["CUDA_VISIBLE_DEVICES"] = "1"



import scipy.io

import numpy as np

mat = scipy.io.loadmat('frames3class_train80_test20.mat')

XTrain = mat['tensortrain']

y = mat['YTrain']


##
trainlength=2400

X = np.zeros(shape=(trainlength,8,18,400,1))

X[:,:,:,:,0]=XTrain



import keras
 from keras.layers import Dense, LSTM, Flatten, TimeDistributed, Conv2D, Dropout,MaxPooling2D

from keras.models import Sequential

width = 18

height = 400

kernelsize =2 
numberOfHiddenUnits =8 
model = Sequential()

model.add(TimeDistributed(Conv2D(2, (kernelsize, kernelsize), activation='relu'),
                          input_shape=(None, width, height, 1)))

model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2))))

model.add(TimeDistributed(Flatten()))

model.add(LSTM(numberOfHiddenUnits))

model.add(Dense(1, activation='sigmoid'))

opt=keras.optimizers.Adam(learning_rate=0.000001)
model.compile(loss=keras.losses.sparse_categorical_crossentropy, optimizer=opt, metrics=['acc'])
print(model.summary())



model.fit(X, y,batch_size=16,epochs=30)

Python控制台上的结果如下

  16/2400 [..............................] - ETA: 2s - loss: nan - acc: 0.0000e+00
  80/2400 [>.............................] - ETA: 2s - loss: nan - acc: 0.0000e+00
 144/2400 [>.............................] - ETA: 2s - loss: nan - acc: 0.0000e+00
 208/2400 [=>............................] - ETA: 2s - loss: nan - acc: 0.0000e+00
 272/2400 [==>...........................] - ETA: 2s - loss: nan - acc: 0.0000e+00
 336/2400 [===>..........................] - ETA: 2s - loss: nan - acc: 0.0000e+00
 384/2400 [===>..........................] - ETA: 2s - loss: nan - acc: 0.0000e+00

感谢您的帮助,

好的,我用一个热编码更改了标签,相应地解决了丢失函数。

3类分类,1个输出神经元和乙状结肠激活