- Layer type: Reshape
- 头文件位置:./include/caffe/layers/reshape_layer.hpp
- CPU 执行源文件位置: ./src/caffe/layers/reshape_layer.cpp
- Reshape层的功能:根据给定参数改变输入blob的维度,仅仅改变数据的维度,但内容不变。
参数解读
layer {
name: "reshape"
type: "Reshape"
bottom: "input"
top: "output"
reshape_param {
shape {
dim: 0 # copy the dimension from below
dim: 2
dim: 3
dim: -1 # infer it from the other dimensions
}
}
}
如上图中的dim,具体还以如下:
#有一个可选的参数组shape, 用于指定blob数据的各维的值(blob是一个四维的数据:n*c*w*h)。
#dim:0 表示维度不变,即输入和输出是相同的维度。
#dim:2 或 dim:3 将原来的维度变成2或3
#dim:-1 表示由系统自动计算维度。数据的总量不变,系统会根据blob数据的其它三维来自动计算当前维的维度值 。
#假设原数据为:32*3*28*28, 表示32张3通道的28*28的彩色图片
# shape {
# dim: 0 32-32
# dim: 0 3-3
# dim: 14 28-14
# dim: -1 #让其推断出此数值
# }
#输出数据为:32*3*14*56
参数定义
参数(ReshapeParameter reshape_param)
定义位置 ./src/caffe/proto/caffe.proto:
可选参数