如何训练具有 2D 输出的网络? (python,凯拉斯)
How to train network with 2D output? (python,Keras)
我想训练一个回归网络,它的输出是两个坐标 (x1,y1) 和 (x2,y2)。
我的问题是:如果我想训练网络,我的输出应该分开吗?
我的意思是我的输出应该是这样的:
[x1,y1,x2,y2]
或者有没有办法像这样堆叠它们:
[(x1,y1),(x2,y2)]
提前致谢
RepeatVector
用于此目的(请参阅 Keras 文档)。
您希望输出形状为 (2, 2)
,或两个坐标的数组,每个坐标有两个条目。
num_outputs = 2
num_elements = 2
添加层以处理网络输入后,添加 RepeatVector
。这将使获取数据数组作为输出成为可能。你的最后一层需要输出 num_elements
例如:
model.add(RepeatVector(num_outputs))
# Optional layers can be inserted here
model.add(Dense(num_elements))
简而言之,repeat vectors复制上一层的内容发送到更远的节点,每条路径会输出一个num_elements
的数组,给你想要的输出形状。请注意,您的训练数据(标签)也必须包含形状 (2, 2)
数组。
我想训练一个回归网络,它的输出是两个坐标 (x1,y1) 和 (x2,y2)。 我的问题是:如果我想训练网络,我的输出应该分开吗? 我的意思是我的输出应该是这样的:
[x1,y1,x2,y2]
或者有没有办法像这样堆叠它们:
[(x1,y1),(x2,y2)]
提前致谢
RepeatVector
用于此目的(请参阅 Keras 文档)。
您希望输出形状为 (2, 2)
,或两个坐标的数组,每个坐标有两个条目。
num_outputs = 2
num_elements = 2
添加层以处理网络输入后,添加 RepeatVector
。这将使获取数据数组作为输出成为可能。你的最后一层需要输出 num_elements
例如:
model.add(RepeatVector(num_outputs))
# Optional layers can be inserted here
model.add(Dense(num_elements))
简而言之,repeat vectors复制上一层的内容发送到更远的节点,每条路径会输出一个num_elements
的数组,给你想要的输出形状。请注意,您的训练数据(标签)也必须包含形状 (2, 2)
数组。