如何将"object"的 dtype 更改为 float32?



我实际上正在尝试编程keras模型。从我的角度来看,KERAS模型需要NP.Arrays列表X(或Numpy Array(。在我的情况下,X看起来像这样:

print(training.dtype)

对象

print(training.shape)

(406,(

print(training[0].dtype)

float64

print(training[0].shape)

(5140,5(

这是我的火车数据(x(的大小。如果我想训练模型,我会得到此错误:

返回数组(a,dtype,copy = false,order = order = order(

valueerror:设置带有序列的数组元素。

这就是为什么我认为,我准备了错误的数据。如果我想将它们的.stype转换为float32,我会收到相同的错误。

感谢您的帮助!

如果train2中的条目都不具有相同的大小,则需要对其进行垫子。由于这是需要定期完成的事情,因此Keras为此提供了一个功能:pad_sequences

一旦它们的大小相同,np.array(train2)将创建一个可以将其传递给model.fit()的单个Numpy数组。

根据您的模型,您以这种方式添加的额外数据可能是或不是问题。处理此问题的一种常见方法是掩盖。使用它来生成一个将自动传递到模型的掩码,以便忽略某些值(您通过填充的值(被忽略。但是请注意,并非所有图层都支持掩盖,因此也许这不是您的选择。

问题没有更改类型。问题在于批处理样本的大小相同,因此无法创建NP数组。您可以使用评论中提到的填充来解决此问题。看看Keras pad_sequences

最新更新