您好,登錄后才能下訂單哦!
今天踩過的兩個小坑:
一.用random的shuffle打亂數據集中的數據-標簽對
index=[i for i in range(len(X_batch))] # print(type(index)) index=random.shuffle(index)
結果shuffle完以后index變成None了,看了下api,這樣說明的:
這個函數如果返回值,就返回None,所以用index=balabala就把index的內容改變了。去掉index=random.shuffle(index)等號前面的值,這樣利用shuffle函數就可以直接將index的內容打亂,并且不返回任何值。
因此以上方式就可以打亂index的順序,并以新順序輸出batch中的數據。
二.整體引用index這個list中的數據
因為index是一個list,所以代碼這樣寫:
X_batch=X_batch[index] Y_batch=Y_batch[index]
是有問題的,報錯是:TypeError: list indices must be integers or slices, not list.
這是因為我的X_batch,Y_batch都是list,直接引用index是錯誤的。而可以直接引用的方法是如果X_batch,Y_batch是數組,index是數組,就可以。
所以代碼改成了:
X_batch,Y_batch=data_generator(data_path) index=[i for i in range(len(X_batch))] # print(type(index)) random.shuffle(index) index=np.array(index) X_batch=[np.array(X_batch)[index]] Y_batch=[np.array(Y_batch)[index]]
參考代碼:
以上這篇對python打亂數據集中X,y標簽對的方法詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。