python - Keras 的 fit() 不接受我的 numpy 数组数据
问题描述
嘿,我刚刚开始学习深度学习,我正在尝试使用 fit() 函数训练我的模型,但是我在将训练数据传递给 fit() 时遇到了问题,我将向您展示我的过程,以便您获得很好地了解我的数据的外观。
这就是我从 Keras 获取数据的方式:
(train_data, train_labels), (test_data, test_labels) = data.load_data(num_words=10000)
这是一个numpy列表数组
我还尝试通过将所有列表设置为长度为 250 的 numpy 数组来使数组中的每个列表保持一致。实际上有一个名为 keras.preprocessing.sequence.pad_sequences() 的函数正是我尝试做的事情,而且, fit() 与该函数一起使用,但我想创建自己的函数,这是我的函数:
def make_data_const_250(data):
for i in range(len(data)):
data[i]=np.asarray(data[i])#converting list to numpy
if len(data[i]) < 250:
for j in range(250-len(data[i])):
data[i]=np.append(data[i],word_index["<SPACE>"])
elif len(data[i]) > 250:
data[i] = data[i][ :250]
return data
然后我试图使数据保持一致:
train_data=make_data_const_250(train_data)
test_data=make_data_const_250(test_data)
这就像做:
train_data=keras.preprocessing.sequence.pad_sequences(train_data, value=word_index["<SPACE>"],padding="post",maxlen=250)
并用 test_data 做同样的事情
我在调用我的函数和 Kera 的函数后打印了数据类型,它们都给出了一个 numpy 数组的 numpy 数组。
然后我调用了 fit() 函数:
x_val=train_data[:10000] # validation data
x_train=train_data[10000:] # training data
y_val=train_labels[:10000] #validation labels
y_train=train_labels[10000:]#training lables
fitModel = model.fit(x_train, y_train, epochs=7, batch_size=512,validation_data=(x_val,y_val),verbose=1)
它给出的错误是:ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型 numpy.ndarray)。
并且使用 Kera 的函数它可以工作,而我的函数却没有,我想知道为什么 fit() 函数不会接受我的 numpy 数组的 numpy 数组以及如何修复错误,我也很新到numpy数组也是如此,所以问题可能与此有关,谢谢您的帮助!
解决方案
推荐阅读
- regex - 将 Craft CMS 3 的 mod_rewrite 规则与缓存清除相结合
- c# - 没有输入字符串的 C# 正则表达式格式化字符串
- jquery - 向下滚动时合并两个圆圈
- javascript - 如何将 OAuth 令牌与我的主 js 文件分开?
- python - 使用 LDA 减少训练集维度时的单样本预测问题
- c - 使用 malloc() 生成链接列表
- elasticsearch - elastic4s 批量插入不适用于 Json 中的多个元素
- r - 生成多列以在 R 中对数据进行排序
- c++ - AST 类实现的类继承、ENUM 问题
- javascript - 单击复选框后,我可以在 Javascript 函数中将重力表单字段设置为所需状态吗?