对数据填充和采样的方法
記錄一下訓練前對數據的處理–數據填充和采樣
例如:對每個視頻數據的處理
數據填充:
1.使用np.vstack在原數據下面豎著堆疊
np.vstack((要堆疊的數據, np.zeros((想要的長度-現有數據的長度,列數))))可以自己看看np.stack和np.hstack方法
2.使用np.pad在數據的周圍或者任意一邊進行數據填充
上面代碼的意思:((frow,arow),(lcol,rcol))指在數據的 前面多少行、后面多少行、左邊多少列、右邊多少列 填充數據,是位置信息。 ‘constant’是填充模式是常數模式,深度學習都用這個模式,別的模式可以自己搜一下。constant_values是要填充的數據,與前面對應,是數據信息。
如果想在周圍添加均勻的數據,那么位置信息使用(num1,num2)即可,num1表示前面和左邊,num2表示下面和右邊,數據信息直接(num1,num2)
如果是一維數組直接用(left,right)作為要添加的位置信息。
3.使用np.linespace和np.interp進行插值
xloc = np.arange(frames.shape[0]) new_xloc = np.linspace(0,frames.shape[0],num=numpoints) // new_xloc = np.linspace(start,end,num=numpoints)在start和end之間生成一個均勻的序列,共有numpoints個
np.interp(new_xloc,xloc,data)new_xloc是新生成的x坐標序列,xloc是原始坐標序列,data是對應的一行數據。注意,一行數據是同一關節不同時間的x或y或z位置
對自己的數據進行插值時,記得變成合適的shape
可以看以下例子:
4.使用np.zeros(shape = ())先固定特征矩陣的大小,然后再改變里面的值
數據采樣
1.使用np.sample進行隨機采樣
np.sample(frames, num):對frames隨機采樣num行,按照第一維來進行的。
2.直接選擇前面的固定幀
可以在提取xyz時,只選擇前面多少幀的。
如果已經給定所有幀的xyz位置的純凈版,那么可以直接用[0:想要的幀數,:]進行切片
3.對數據均勻采樣
總結
以上是生活随笔為你收集整理的对数据填充和采样的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Aqwa 带你掌握船舶与海洋工程水动力理
- 下一篇: 外汇黄金MT4下单脚本带资金管理