TensorSpace.js
开始使用
基本概念
模型预处理
模型
网络层
网络层融合
Pooling1d
1d Pooling。MaxPooling1dAveragePooling1d只改变计算方法,不改变模型结构,所以都是用这个API。
构造器
两种方法构造一个新建一个层,输入参数都是必要的。
〔方法一〕使用 poolSize strides 参数进行构造
TSP.layers.Pooling1d( { poolSize : Int, strides: Int } );
〔方法二〕使用 shape 参数进行构造
TSP.layers.Pooling1d( { shape : [ Int ] } );
〔方法二〕使用 shape 参数进行构造
TSP.layers.Pooling1d( { shape : [ Int, Int ] } );
Fig. 1 - Pooling1d 层示意图(左:收缩 | 右:展开)
参数列表

参数名

标签

类型

简介

具体用法细节和例子

poolSize

📦

Int 池化框的尺寸 例如,poolSize = 2表示宽为2

strides

📦

Int 池化框的移动步长 例如,strides = 1,横向步长1

name

🔧

String 层的命名
建议添加
name: “layerName”

padding

🔧📦

String 是否使用padding

valid [default] 不使用padding,丢弃无法提取特征的部分,会改变输出的形状

same 使用padding,在不够的位置补零 ,输出的形状不变

shape

⚙️📦

Int[] 当前层的输出形状 例如,shape = [ 28 ]

color

⚙️🎨

color format 层的颜色 Pooling1d默认颜色是青色 #00ffff

closeButton

⚙️🎨

Dict 层关闭按钮外观控制列表, 查看详情

display : Boolean. true [default] 显示按钮, false 隐藏按钮

ratio : Int 为正常大小的几倍,默认为1倍

例如,设为2为正常大小的2倍大

initStatus

⚙️️🎦

String 初始化时,本层是否收缩 close[default] : 收缩

animation-
TimeRatio

⚙️🎦

Int 张开和伸缩的调整速度,呈倍速关系 例如2就是2倍,数字越大速度越快
属性
.inputShape : Int[]
filter_center_focus本层输入Tensor的形状,dataFormat默认通道值在最后,例如inputShape = [ 28, 3 ] 表示输入深度为3数据向量,每个向量长度28。
filter_center_focus在 model.init() 后才可拿到数据,否则为undefined。
.outputShape : Int[]
filter_center_focus本层输出Tensor的形状为2维 2️⃣
filter_center_focusdataFormat默认通道值在最后,例如outputShape = [ 32, 4 ] 表示经过此层处理后,有4个特征向量,每个特征向量长度32。
filter_center_focus在 model.init() 后才可拿到数据,否则为undefined。
.neuralValue : Int[]
filter_center_focus本层层间输出值数组。
filter_center_focus载入模型,在 model.predict() 后才可以拿到数据,否则为undefined。
.name : String
filter_center_focus本层的自定义名称。
filter_center_focus创建后即可取到。
.layerType : String
filter_center_focus本层的类型,返回一个定值,字符串Pooling1d
filter_center_focus创建后即可取到。
方法
filter_center_focus此方法只在 Functional Model 中使用(非序列型,图结构)。
filter_center_focus将此层连接到layer上,layer即此层的上一层
filter_center_focus使用此方法来建立一个连接。在 Sequential Model 中不需要专门使用此方法来建立链接,参照 Keras or TensorFlow.js 构建模型语法,直接添加层即可。
let convLayer = new TSP.layers.Conv1d( {

    kernelSize: 2,
    filters: 16,
    strides: 1

} );

let poolingLayer = new TSP.layers.Pooling1d( {

    poolingSize: 2,
    strides: 2

} );

poolingLayer.apply( convLayer );
filter_center_focus通过直接和3d场景中物体交互直接点击层打开。
filter_center_focus代码中通过调用方法打开。
let poolingLayer = new TSP.layers.Pooling1d( {

    // 配置Pooling1d。

} );

model.add( poolingLayer );

// ... 给模型添加更多的layer。

model.init();

// 调用openLayer API来打开layer。

poolingLayer.openLayer();
filter_center_focus通过直接和3d场景中物体交互点击按钮关闭。
filter_center_focus代码中通过调用方法打开。
let poolingLayer = new TSP.layers.Pooling1d( {

    // 配置Pooling1d。

} );

model.add( poolingLayer );

// ... 给模型添加更多的layer。

model.init();

// 如果layer已经是打开状态,调用closeLayer API来关闭layer。

poolingLayer.closeLayer();
使用样例
filter_center_focus声明一个Pooling1d的实例,方便复用
let poolingLayer = new TSP.layers.Pooling1d( {

    poolingSize: 2,
    strides: 2,
    animationTimeRatio: 2,
    name: "pooling1d1",
    opacityRatio: 2
    initStatus: "open"

} );

model.add( poolingLayer );
filter_center_focus直接添加Pooling1d
model.add(new TSP.layers.Pooling1d( {

    poolingSize: 2,
    strides: 2,
    name: "pooling1d2"

} ));
什么时候用
如果你熟悉Keras | TensorFlow | tfjs 框架,构建模型时使用了池化层Pooling1d(下表列出了可能的使用情景)。一一对应的,在TensorSpace中,你应该使用此API。
框架名称 对应框架中新建对象代码段
Keras keras.layers.MaxPooling1D(pool_size=2, strides=None)
TensorFlow tf.layers.max_pooling1d( inputs, pool_size, strides)
TensorFlow.js tf.layers.maxPooling1d (config)
标签详情
符号 参数性质 说明
⭐️ 必要 使用时必须提供,不能为空,只要提供了这些参数,就能正常创建实例,控制参数使用默认值。
🔧 推荐 使用时推荐给定,未给定也可以运行,但在体验和易用性上有隐患。
⚙️ 可选 根据模型配置参数选择性添加,这里的参数对于层的结构(3D可视化外观)没有影响。
📦 模型 配置卷积层的相关属性,并对输出特征图形状有影响。
🎨 外观 可覆盖TSP.model下的属性进行细调(查看详情
🎦 动画控制 可覆盖TSP.model下的属性进行细调(查看详情
源码
tensorspace/src/layer/intermediate/Pooling1d.js