簡體   English   中英

如何將“對象”的dtype更改為float32?

[英]How to change the dtype of an “object” to 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)

ValueError:使用序列設置數組元素。

這就是為什么我認為我准備的數據錯誤。 如果我想將它們與.astype轉換為float32,則會出現相同的錯誤。

謝謝你的幫助!

問題沒有改變類型。 問題在於批處理樣本的大小不相同,因此無法創建np陣列。 您可以通過使用注釋中提到的填充來解決此問題。 看一下keras pad_sequences 什么作用?

如果train2的條目大小都不相同,則需要填充它們。 由於這是需要定期進行的工作,因此pad_sequences為此提供了一個功能: pad_sequences

一旦它們都具有相同的大小, np.array(train2)將創建一個單個的numpy數組,您可以將其傳遞給model.fit()

根據您的型號,以這種方式添加的額外數據可能不是問題。 解決此問題的常用方法是Masking 使用它來生成將自動向下傳遞到模型的蒙版,以便忽略某些值(您通過填充添加的值)。 但是請注意,並非所有圖層都支持遮罩,因此這不是您的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM