"Boolean" (神经网络解码器)

NetDecoder["Boolean"]

表示一个解码器,如果 p<0.5,将概率 p 转换成 False,否则转换为 True.

更多信息

  • NetDecoder[][input] 对一个输入应用解码器,产生一个输出.
  • NetDecoder[][{input1,input2,}] 对一系列输入应用解码器,产生一系列输出.
  • 解码器的输入 input 是一个标量,范围为 0input1.
  • NetDecoder[{"Boolean","InputDepth"->n}] 可以用来指定输入数组的深度为 n. 默认深度为 0,表示输入是一个实数.
  • 在构建网络时,可通过指定 "port"->NetDecoder[] 将解码器添加到网络的输出端口上.
  • 属性
  • NetDecoder["Boolean"][data,prop] 可用于计算输入数据的指定的属性.
  • 当一个 "Boolean" 解码器附加在网络上时,net[data,prop]net[data,"oport"->prop] 可用于计算解码输出的指定的属性.
  • "Boolean" 解码器支持以下属性 prop
  • "Decision"具有最高概率(默认)的布尔类 FalseTrue
    "Probability"True 的概率 p
    "Entropy"概率分布的熵
    "RandomSample"对其概率按比例采样 Boolean
    "RandomSample"->t使用正温度 t 采样
    None不解码,直接返回输入

范例

打开所有单元关闭所有单元

基本范例  (1)

创建一个 Boolean 解码器:

将概率解码为 TrueFalse

对一批实例应用解码器:

解码器期待概率作为输入并充当带有属性 "Probability"Identity

计算熵:

范围  (2)

ElementwiseLayer 的输出端口上添加 "Boolean" 解码器:

将该网络层应用于一个输入:

创建一个 "Boolean" 解码器,将概率矩阵转换为布尔值矩阵:

将解码器添加到网络上,并对一个输入应用网络:

获取正类的概率:

计算每个伯努利分布的熵: