“Average” 方法使用工厂方法来完成计算层的平均值运算。该方法要求所有输入层形状相同(否则无法进行平均值运算)并返回一个平均层实例。
工厂方法
layerAverageResult = TSP.layers.Average( [layer1, layer2, ...], { 配置参数列表 } )
〔参数一〕输入层数组,
支持一个或以上的输入层。
〔参数二〕外观动画等配置参数
图1 - 求平均层示意图(左:收缩 | 右:展开)
配置列表
参数名 标签 |
类型 |
简介 |
具体用法细节和例子 |
---|---|---|---|
name |
String | 层的命名 | name: “layerName” 在顺序模型中,建议添加,以便从模型中获取层对象 在函数式模型中,必须给每个层添加 name 属性,且添加的名称 name 的值需要和预训练网络中对应层的名称相同 |
color |
Color Format | 层的颜色 | Average默认颜色是红色 #E23E57 |
closeButton |
Dict | 层关闭按钮外观控制列表, 查看详情 | display: Bool. true [默认值] 显示按钮, false 隐藏按钮 ratio: Int 为正常大小的几倍,默认为1倍,例如,当ratio设为2时,关闭按钮为正常大小的2倍大 |
initStatus |
String | 本层初始化状态,查看详情 | close[默认值] : 收缩 open:展开 |
animeTime |
Int | 张开和伸缩的速度 | 例如2000就是2秒,如果在layer中配置animeTime属性将会覆盖model中的animeTime。 |
属性
.outputShape
: Int[]
- filter_center_focus 表示本层输出Tensor的形状为3维。 dataFormat默认通道值在最后,例如outputShape = [ 32, 32, 4 ] 表示经过此层处理后,有4个特征图, 每个图大小为32*32。
- filter_center_focus 在 model.init() 后才可拿到数据,否则为 undefined。
.neuralValue : Int[]
- filter_center_focus 表示本层的层间输出值数组,加法层不改变输出的形状,和被加层的形状相同。
- filter_center_focus 在 model.init() 后才可拿到数据,否则为 undefined。
.name
: String
- filter_center_focus 表示本层的自定义名称。
- filter_center_focus 创建后即可取到。
.layerType
: String
- filter_center_focus 表示本层的类型,返回一个定值,字符串Average1d, Average2d, 或 Average3d。根据返回值字段可以判断构造模型的维度特征。
- filter_center_focus 创建后即可取到。
方法
.openLayer() : void
filter_center_focus展开 Layer,如果 Layer 已经处于 “open”
状态,Layer 将会保持 “open” 状态。
filter_center_focus详情参见 网络层状态。
.closeLayer() : void
filter_center_focus闭合 Layer,如果 Layer 已经处于 “close”
状态,Layer 将会保持 “close” 状态。
filter_center_focus详情参见 网络层状态。
使用样例
filter_center_focus将两个网络层求平均,并获得一个平均层实例:
let averageLayer = TSP.layers.Average(
[ layer1, layer2 ],
{
// 建议配置,在函数式模型中为必要配置
name: "AverageLayer",
// 可选配置
animeTime: 4000,
initStatus: "open"
}
);
什么时候用
如果你熟悉Keras | TensorFlow | tfjs 框架,构建模型时使用了加法操作(下表列出了可能的使用情景)。一一对应的,在TensorSpace中,使用本API。
框架名称 | 对应框架中新建对象代码段 |
---|---|
Keras | keras.layers.Average() |
TensorFlow | tf.keras.layers.average( inputs, **kwargs ) |
TensorFlow.js | tf.layers.average (config) |
源码