在不影响结果的情况下填充Tensorflow训练数据

问题描述

总体而言,我对张量流和神经网络非常陌生。我正在尝试创建一种监督式深度学习算法,以使用tensorflow和python在给定起点和终点坐标对的情况下预测路径。目标是使用现有的路径数据集训练神经网络,并使用起点-终点坐标作为输入来创建看起来相似的路径。
我的训练数据包含80,126批数量不同的x和y坐标对。为了将这些数据用于训练,我将批次填充到最长路径的长度,以便最终得到形状为(80126,111,2)的矩阵。然后,我转置内部向量,以便每个批次都包含一个x坐标向量和一个y坐标向量(我无法让我的模型正确使用x,y对)。例如:

[[859,853,777,748,554,544,541,530,531,0],[228,228,263,284,381,387,399,438,460,464,471,0]]

但是,问题是,每当我使用这些数据来训练模型时,我都会得到暗示零填充影响结果的结果。像这样: training data vs trained model(蓝色是原始路径减去零垫,橙色是经过训练的路径)
为了解决这个问题,我尝试添加一个遮罩层,该遮罩层将零个时间步长值屏蔽掉:

model.add(tensorflow.keras.layers.Masking(mask_value=0,input_shape=(2,2)))

但是,这不能解决问题。很明显,我对掩膜层的理解是有缺陷的。我在这里做错什么,以及如何使用零填充数据训练模型?

下面是我的模型代码
(我正在使用tensorflow 1.5和python 2.6.9)

import tensorflow
import numpy as np
import pandas

model = tensorflow.keras.models.Sequential()
model.add(tensorflow.keras.layers.Masking(mask_value=0,2)))
model.add(tensorflow.keras.layers.Dense(127,activation='relu' ))
model.add(tensorflow.keras.layers.Dense(111,activation='linear'))

model.summary()

inputs = np.load('inputs.npy').transpose(0,2,1)
paths = np.load('paths.npy',allow_pickle=True).transpose(0,1)

data_set = tensorflow.data.Dataset.from_tensor_slices((inputs,paths))

model.compile(optimizer='adam',loss='mean_squared_error')

history = model.fit(inputs,paths,epochs=3)

history.history

prediction = model.predict(inputs)
np.save('results',prediction)

作为参考,我的项目类似于:Generating mouse movement with ANN

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...