我的問題是:在給定舞蹈序列訓練數據的情況下,下面詳述的長短期記憶網絡是否經過適當設計以生成新的舞蹈序列?背景:我正在與一位希望使用神經網絡生成新舞蹈序列的舞者合作。她向我發送了2016 年的 chor-rnn 論文,該論文使用帶有混合密度網絡層的 LSTM 網絡完成了這項任務。然而,在我的 LSTM 網絡中添加一個 MDN 層后,我的損失變為負值,結果看起來很混亂。這可能是由于訓練數據非常小,但我想在擴大訓練數據大小之前驗證模型基礎。如果有人可以建議下面的模型是否忽略了一些基本的東西(很有可能),我將非常感謝他們的反饋。我輸入網絡的樣本數據(X下圖)具有形狀 (626, 55, 3),它對應于 55 個身體位置的 626 個時間快照,每個位置有 3 個坐標(x、y、z)。所以 X 1 [11][2] 是第 11 個身體部位在時間 1 的 z 位置:import requestsimport numpy as np# download the datarequests.get('https://s3.amazonaws.com/duhaime/blog/dancing-with-robots/dance.npy')# X.shape = time_intervals, n_body_parts, 3X = np.load('dance.npy')為了確保數據被正確提取,我將前幾幀可視化X:import mpl_toolkits.mplot3d.axes3d as p3import matplotlib.pyplot as pltfrom IPython.display import HTMLfrom matplotlib import animationimport matplotlibmatplotlib.rcParams['animation.embed_limit'] = 2**128def update_points(time, points, X): arr = np.array([[ X[time][i][0], X[time][i][1] ] for i in range(int(X.shape[1]))]) points.set_offsets(arr) # set x, y values points.set_3d_properties(X[time][:,2][:], zdir='z') # set z valuedef get_plot(X, lim=2, frames=200, duration=45): fig = plt.figure() ax = p3.Axes3D(fig) ax.set_xlim(-lim, lim) ax.set_ylim(-lim, lim) ax.set_zlim(-lim, lim) points = ax.scatter(X[0][:,0][:], X[0][:,1][:], X[0][:,2][:], depthshade=False) # x,y,z vals return animation.FuncAnimation(fig, update_points, frames, interval=duration, fargs=(points, X), blit=False ).to_jshtml()HTML(get_plot(X, frames=int(X.shape[0])))
添加回答
舉報
0/150
提交
取消