Neural network Keras索引器:索引超出范围

Neural network Keras索引器:索引超出范围,neural-network,theano,keras,Neural Network,Theano,Keras,我是Keras的新手,我正在尝试在数据集上进行二进制MLP,并且不断地获取超出范围的索引,不知道为什么 从keras.models导入 从keras.layers.core导入密集、退出、激活 从keras.optimizers导入新加坡元 模型=顺序() 添加(密集型(64,输入尺寸=20,初始化class='uniform',激活class='relu')) 模型。添加(辍学率(0.5)) 添加(密集(64,activation='relu')) 模型。添加(辍学率(0.5)) model.

我是Keras的新手,我正在尝试在数据集上进行二进制MLP,并且不断地获取超出范围的索引,不知道为什么

从keras.models导入
从keras.layers.core导入密集、退出、激活
从keras.optimizers导入新加坡元
模型=顺序()
添加(密集型(64,输入尺寸=20,初始化class='uniform',激活class='relu'))
模型。添加(辍学率(0.5))
添加(密集(64,activation='relu'))
模型。添加(辍学率(0.5))
model.add(密集型(1,激活='sigmoid'))
model.compile(loss='binary\u crossentropy',
优化器='rmsprop')
模型拟合(trainx,trainy,nb_epoch=20,批次尺寸=16)#错误
错误:

model.fit(trainx,trainy,nb_epoch=20,批次尺寸=16)
纪元1/20
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
模型配合(trainx,trainy,nb_epoch=20,批次尺寸=16)
文件“C:\Users\Thiru\Anaconda3\lib\site packages\keras\models.py”,第646行,在fit中
洗牌=洗牌,指标=指标)
文件“C:\Users\Thiru\Anaconda3\lib\site packages\keras\models.py”,第271行,以_-fit格式
ins\U batch=slice\U X(ins,批次ID)
文件“C:\Users\Thiru\Anaconda3\lib\site packages\keras\models.py”,第65行,在slice\u X中
返回[x]中x的x[开始]
文件“C:\Users\Thiru\Anaconda3\lib\site packages\keras\models.py”,第65行,在
返回[x]中x的x[开始]
文件“C:\Users\Thiru\Anaconda3\lib\site packages\pandas\core\frame.py”,第1963行,在\uuu getitem中__
返回self.\u getitem\u数组(键)
文件“C:\Users\Thiru\Anaconda3\lib\site packages\pandas\core\frame.py”,第2008行,在\u getitem\u数组中
返回self.take(索引器,轴=1,转换=True)
文件“C:\Users\Thiru\Anaconda3\lib\site packages\pandas\core\generic.py”,第1371行,在take中
convert=True,verify=True)
文件“C:\Users\Thiru\Anaconda3\lib\site packages\pandas\core\internals.py”,第3619行,在take中
索引器=可能转换索引(索引器,n)
文件“C:\Users\Thiru\Anaconda3\lib\site packages\pandas\core\index.py”,第1750行,在索引中
提升索引器(“索引超出范围”)
索引器:索引超出范围

有人知道为什么会这样吗?我能很好地运行其他模型

评论中的答案-trainx和trainy应该是numpy数组。您可以使用
as_matrix()
方法将数据帧转换为numpy数组。我也面临这个问题。奇怪的是,Keras没有给出有意义的错误消息。

我来这里是为了寻找auto-sklearn和pandas数据帧的相同问题解决方案。解决方案是将X数据帧作为X.values传递。即,从

Keras模型在输入数据和标签的Numpy数组上进行训练。为了训练模型,通常将使用“拟合”功能

要将数据帧转换为numpy数组,可以使用
np.array(数据帧)
。例如:

x\u列=np.数组(x\u列)

trainx和trainy应该是numpy数组。这样,模型认为像URL这样的字符串值是浮点数:“ValueError:无法将字符串转换为浮点数:“Clothing Girls’Clothing Baby Girls’Clothing连衣裙”