Cross Entropy的数值稳定计算
今天在看centernet
的heatmap
损失函数时,发现他的损失和熵差不多,但是我用tf
的实现会导致loss
为Nan
,因此我看了下Cross Entropy
的计算优化,这里记录一下.
今天在看centernet
的heatmap
损失函数时,发现他的损失和熵差不多,但是我用tf
的实现会导致loss
为Nan
,因此我看了下Cross Entropy
的计算优化,这里记录一下.
昨天我尝试用双cuda
的方式来配置换,但是还是遇到了cuda
的错误,我不懂pytorch
又没办法解决。然后我浏览下issue
,看到有同样的问题,大概率是由于显卡是20系列的,老版本的cuda
不行,解决方式就是升级pytorch
版本用新的cuda
。所以我这里把配置环境重新做个记录,免得下次又来。。
有的时候我们的loss
函数是一个复合函数,但是在tf.keras
中,loss
函数只能返回一个标量,这个时候我们如果想要观察loss
中子部分的值就只能写个metric
去重新计算,但是这样是很浪费计算资源的,所以最好直接将loss
中的值提取至metric
。
为了学习CenterNet
,配置环境弄了半天。。由于我是主用tensorflow
的,pytorch
搞不来,只能按他的步骤来。他的环境比较老,是cuda 9.0 cudnn 7.1
的,然而我早就在用cuda 10.1 cudnn 7.5
了,所以我还得安装这个版本的cuda
。
下面我就说下安装多个版本的cuda
的注意点。
这几天时间自己把TensorFlow Probability
里面的几个例子过了一遍,希望以后可以做出一些深度学习与概率论结合的成果。
今天我试着用TensorFlow Probability
把条件VAE实现一下。这个条件VAE通过控制传统VAE
中的正态分布的均值来达到分类生成的效果,这样每个类别都有一个专属均值,可以通过这个专属均值来生成与此类相似的结果。
要搞个人脸识别的应用,花了半天时间浏览一下,准备基于open face
的模型来做移植。下面是对开源库face-recognition的使用指南进行一个翻译,看了一下基本知道了大致流程。不过我记得上次写过L softmx -> A
softmx -> AM
softmax的这些loss
都是用在人脸识别里面的,但是如果基于softmax loss
的话,每加一个人脸不都是要重新训练一波吗?不知道是不是这个情况,目前还没看到别的方式。