Tensorflow、sklearn孰好孰坏?tensorflow损失函数是什么?
扫描二维码
随时随地手机看文章
tensorflow是目前最热门机器学习框架之一,同其它框架相比,tensorflow具备自身优势。那么,tensorflow和sklearn相比,具体优劣势有哪些呢?这将是本文介绍的内容之一。此外,本文将对tensorflow的损失函数加以介绍,以增进大家对tensorflow的了解。如果你对tensorflow具有一定兴趣,不妨继续往下阅读哦。
一、sklearn、 tensorflow优劣势
目前,在社区中,tensorflow会比较火,很多同学会问,为什么不用tensorflow,这两个有什么区别,我想,主要从以下这方面来做对比
1、sklearn主要定位是一种通用的机器学习的学习库,tf主要定位还是深度学习。
2、特征工程上,sklearn提供了例如维度压缩、特征选择等,但是这样子并不代表这tf就比sklearn弱。在传统的机器学习中,sklearn需要使用者自行对数据进行数据处理,例如进行特征选择,维度压缩,转换格式等,但是tf可以在开始进行数据训练的过程中,自行从数据中提取有效的特征,从而减少人为的干预。
3、易用性及封装度上,sklearn更高,这点上,我想很多用过的人都清楚,不做累赘描述。
4、面对项目的不同,sklearn更适合中小型,特别是数据量不大的项目,此时更需要手动者对数据进行处理,并且选择合适模型的项目,这些计算是可以在CPU直接计算的,没有什么硬件要求。相对的,tf的应用领域上,往往更加注重数据量较大,一般情况下需要GPU进行加速运算。目前很多公司并没有很大量的数据,在选择上,可以作为参考。
二、TensorFlow损失函数
声明一个损失函数需要将系数定义为变量,将数据集定义为占位符。可以有一个常学习率或变化的学习率和正则化常数。
在下面的代码中,设 m 是样本数量,n 是特征数量,P 是类别数量。这里应该在代码之前定义这些全局参数:
在标准线性回归的情况下,只有一个输入变量和一个输出变量:
在多元线性回归的情况下,输入变量不止一个,而输出变量仍为一个。现在可以定义占位符X的大小为 [m,n],其中 m 是样本数量,n 是特征数量,代码如下:
在逻辑回归的情况下,损失函数定义为交叉熵。输出 Y 的维数等于训练数据集中类别的数量,其中 P 为类别数量:
如果想把 L1 正则化加到损失上,那么代码如下:
对于 L2 正则化,代码如下:
由此,你应该学会了如何实现不同类型的损失函数。那么根据手头的回归任务,你可以选择相应的损失函数或设计自己的损失函数。在损失项中也可以结合 L1 和 L2 正则化。
以上便是此次小编带来的“tensorflow”相关内容,通过本文,希望大家对tensorflow的损失函数具备一个清晰的认识。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!