3.17 深度学习基础设施
DeepChem维护轻量级的深度学习基础设施共用层,它可以用于不同框架的模型的构建。损失函数和优化器可用于TensorFlow 和 PyTorch模型。
3.17.1 Losses
Loss类
用于训练模型的损失函数。
L1Loss类
真实值和预测值之间的绝对值。
L2Loss类
真实值与预测值的差的平方。
HingeLoss类
Hinge损失函数
其‘output’参数应包含logits, 所有的‘labels’元素应等于 0 或 1。
BinaryCrossEntropy类
概率对的交互熵
每个参数应用形状(batch_size) 或(batch_size, tasks)并包含概率。
CategoricalCrossEntropy类
两个概率分布的交互熵
参数应有形状(batch_size, classes) 或 (batch_size, tasks, classes)并代表类的概率分布。
SigmoidCrossEntropy类
成对概率的交互熵
参数应有形状(batch_size) 或 (batch_size, tasks)。标签应为概率,输出应为使用sigmoid 函数转换为概率的logits。
class SoftmaxCrossEntropy
两个概率分布的交叉熵.
参数的形状应为 (batch_size, classes)或 (batch_size, tasks, classes)。标签应为概率,输出是用softmax函数转换概率的logits。
class SparseSoftmaxCrossEntropy
两个概率分布的交叉熵.
标签的形状应为 (batch_size)或 (batch_size, tasks), 并为整数类标签。输出的形状为(batch_size, classes) 或 (batch_size, tasks, classes) 并为使用sigmoid 函数转换为概率的logits。
class VAE_ELBO
Variational AutoEncoder损失, KL离散规则化 + 边界对数似然。
这个损失基于文献[1]. ELBO(Evidence lower bound) 词汇上代替Variational lower bound. BCE的意思是边界对数似然。KLD的意思是带正态分布的KL离散。
为KLD增加超参数‘kl_scale’ 。
Logvar和mu应有形状 (batch_size, hidden_space). X和 reconstruction_x应有形状
(batch_size, attribute)。kl_scale应为浮点数。
示例
用常数张量计算损失的例子。
batch_size = 2, hidden_space = 2, num of original attribute =