[英]How to solve the error "value too large for 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.