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

NetDecoder["Class"]

表示一个解码器,将向量解释为类的概率.

NetDecoder[{"Class",{c1,c2,}}]

表示类别标签为 ci 的解码器.

更多信息

  • NetDecoder[][input] 对一个输入应用解码器,产生一个输出.
  • NetDecoder[][{input1,input2,}] 对一系列输入应用解码器,产生一系列输出.
  • NetDecoder["Class"] 使用连续的整数作为类别标签.
  • 在构建网络时,可通过指定 "port"->NetDecoder[] 将解码器添加到网络的输出端口上.
  • 参数
  • 支持下列参数:
  • "InputDepth"1输入数组深度
    "Multilabel"False是否从独立分布中提取类
  • NetDecoder[{"Class",,"InputDepth"->n}] 可以用来指定输入数组的深度为 n. 默认深度为 1,表示输入是一个向量. 对于矩阵或更高阶数的输入,最后一个维度被解释为类别维度.
  • "Multilabel"False 时,在类维度上值必须总和为 1.
  • "Multilabel"True 时,值必须在 0 和 1 之间,且每个大于 0.5 的值会在决策的输出列表中产生一个类.
  • 属性
  • NetDecoder[][data,prop] 可用来计算输入数据的特定属性.
  • 当一个 "Class" 解码器被添加到网络中时,net[data,prop] or net[data,"oport"->prop] 可用来计算解码后的输出的特定属性.
  • "Class" 解码器支持下列属性 prop
  • "Decision"概率最高的类别 ci (默认)
    "TopDecisions"n概率最高的 n 个类别
    "TopProbabilities"可能性最高的 ci 的概率,以规则列表形式返回
    "TopProbabilities"nn 个可能性最高的 ci 的概率
    "Probabilities"关联 <|c1->p1,c2->p2,|>
    "Probability"ci特定 ci 的概率
    "Entropy"概率分布的熵
    "RandomSample"按每个类别的概率比例对其进行采样
    "RandomSample"t用正的温度 t 进行采样
    "RandomSample"{param1val1,}具有特定行为的随机抽样
    None不解码,直接返回输入
  • "RandomSample"{param1val1,} 中 parami 的可能设置包括:
  • "Temperature"t使用正值温度 t 的样本
    "TotalProbabilityCutoff"p在累积概率至少为 p 的最可能的类别中抽样(核抽样 nucleus sampling)
    "TopProbabilities"k仅在 k 个最高概率的类别中采样

范例

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

基本范例  (1)

创建类别解码器:

对概率向量应用解码器,返回最可能的类:

获取结果为某个类的概率:

范围  (3)

解码器最常见的应用是将其将连接到网络的输出上:

这样,网络将返回一个类别标签:

创建并添加使用连续整数作为类别标签的类别解码器:

创建类别解码器:

对概率向量应用解码器,进行类别预测:

返回最可能的两个预测:

返回所有类别的概率:

返回分布的熵:

返回一批输入的熵:

根据概率对类进行采样:

参数  (2)

"InputDepth"  (1)

创建输入为矩阵的类别解码器:

对矩阵应用解码器,其中的行 (row) 为概率向量:

获取每个类别的概率:

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

"Multilabel"  (1)

创建一个多标签类解码器:

将解码器应用于独立概率的向量:

为每个类获取概率:

获取每个类的熵:

根据概率取样一个类的列表: