VisibleDeprecationWarning , Creating an ndarray from ragged nested sequences... 警告怎么辦


我不是完美主義,但是至少,我在做實驗的時候不能容忍有 warning 的出現。

今天使用 tensorflow.keras.datasets中的 imdb 數據集,使用 imdb.load_data() 方法導入數據的時候,報出一個警告,VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray

經過查閱,得知這是因為創建 numpy包中 ndarray 類對象時,設若 np.array( some_object),如果傳入的參數 some_object 是個 ragged 的,或者維度不整齊,或者每維元素數量不固定的,那么就會報出這個 warning。

這不是自己寫的代碼有問題,而是人家寫好的代碼模塊有問題(現在能 被 numpy 兼容,以后會被棄置的)。所以可以修改人家寫好的 imdb.load_data 的代碼。

方法。

先 import warings, 然后 warnings.simplefilter("error"),使得 warning 不會通過檢查,報出warning位置,找到了關於創建 ndarray 的代碼,這就在imdb.load_data 方法內部

 

 

一共兩處,

分別做如下修改:

 

 

然后就沒有 warning 了。

---------------------------------------------------------------------------------------

Conclusion

---------------------------------------------------------------------------------

哇,第一次改人家的庫,雖然並不是底層的庫,也是很爽。我 cao 勇 的(ww腔)~~

Above all, 浪費了很多的時間,只為了不見個warning,感覺很虧。

還是要抓主要矛盾,下次一定。 :)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM