从概念上讲,如何从具有不同内核大小的三个完全连接的层移动到一个新的完全连接的层?

时间:2017-05-10 22:49:00

标签: machine-learning tensorflow deep-learning

我正在尝试在Tensorflow中编写这里给出的gazecapture模型:

http://gazecapture.csail.mit.edu/cvpr2016_gazecapture.pdf

在模型的末尾,眼睛数据,面部数据和面部网格数据已经减少到三个不同的完全连接的层,分别为1x128,1x64和1x128。权重似乎不是共享的,而是以某种方式组合成一个最终完全连接的层。我错过了将这些连接在一起形成最终完全连接层的链接。

这是怎么回事?在其他地方有这样的例子吗?

如果有帮助,原始项目的github就在这里:

https://github.com/CSAILVision/GazeCapture

谢谢!如果这是一个基本错误,我会事先道歉。

2 个答案:

答案 0 :(得分:0)

通常,它们从多个完全连接的层中连接输出并输入下一个层。以下是进行连接的代码段。您可以在itracker_train_val.prototxt

中找到它
layer {
  name: "concat2"
  bottom: "fc1"
  bottom: "fg_fc2"
  bottom: "fc2_f"
  top: "concat2"
  type: "Concat"
  concat_param {
     axis: 1
  }
}

答案 1 :(得分:0)

很好,所以每个眼睛,脸部和脸部网格都已经减少到他们自己独特的完全连接的层,这使生活变得容易。我们可以使用Tensorflow的内置函数来实现这样的连接

big_fcl = tf.concat([eye_fcl, face_fcl, face_grid_fcl], 1)

('fcl'代表'完全连接的图层')

big_fcl现在是128 + 64 + 128。

完成!