基於影象處理和tensorflow實現GTA5的車輛自動駕駛——第十節平衡資料
阿新 • • 發佈:2020-12-16
在上節我們實現了生成一個訓練集,資料的預處理十分重要,我們使用Python庫看看這個資料集的結構
shape
import pandas as pd
train_data = np.load('test.npy', allow_pickle=True)
df = pd.DataFrame(train_data)
print(df.shape)
# 如果沒修改前一節的程式碼,這裡的結果應該是 (2000,2)
檢視按鍵列
資料是否平衡,即左轉次數右轉次數直線次數
print(df[1].value_counts())
結果:
注:資料偏移量好大,如果出現這麼大偏移可以多跑一次,找轉彎比較多的地方跑。也可以修改main.py的原始碼if len(training_data) % 2000 == 0:
結果:
對不同的按鍵列
資料進行分類
# 資料集 lefts = [] rights = [] forwards = [] # 遍歷5000幀的資料 for data in train_data: img = data[0] choice = data[1] if choice == [1, 0, 0]: lefts.append(data) if choice == [0, 1, 0]: forwards.append(data) if choice == [0, 0, 1]: rights.append(data)
選擇最小的資料集的len作為整個資料的大小
# 切分資料集
forwards = forwards[:len(lefts)][:len(rights)]
lefts = lefts[:len(forwards)]
rights = rights[:len(forwards)]
整合資料,打亂資料並儲存
# add 資料集 final_data = forwards + lefts + rights # 打亂資料 shuffle(final_data) print(final_data) # save data np.save("test_train_data.npy", final_data)