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损失函数
【Tensorflow、sklearn孰好孰坏?tensorflow损失函数是什么?】 声明一个损失函数需要将系数定义为变量 , 将数据集定义为占位符 。可以有一个常学习率或变化的学习率和正则化常数 。
在下面的代码中 , 设 m 是样本数量 , n 是特征数量 , P 是类别数量 。这里应该在代码之前定义这些全局参数:
在标准线性回归的情况下 , 只有一个输入变量和一个输出变量:
在多元线性回归的情况下 , 输入变量不止一个 , 而输出变量仍为一个 。现在可以定义占位符X的大小为 [m , n] , 其中 m 是样本数量 , n 是特征数量 , 代码如下:
在逻辑回归的情况下 , 损失函数定义为交叉熵 。输出 Y 的维数等于训练数据集中类别的数量 , 其中 P 为类别数量:
如果想把 L1 正则化加到损失上 , 那么代码如下:
对于 L2 正则化 , 代码如下:
由此 , 你应该学会了如何实现不同类型的损失函数 。那么根据手头的回归任务 , 你可以选择相应的损失函数或设计自己的损失函数 。在损失项中也可以结合 L1 和 L2 正则化 。
以上便是此次小编带来的“tensorflow”相关内容 , 通过本文 , 希望大家对tensorflow的损失函数具备一个清晰的认识 。如果你喜欢本文 , 不妨持续关注我们网站哦 , 小编将于后期带来更多精彩内容 。最后 , 十分感谢大家的阅读 , have a nice day!
推荐阅读
- 微软发布更新Windows 10 v2004:修复大量Bug、优化后台性能
- 露水河板材的保养要点
- 发泡水泥的施工工艺
- Keil环境,在调试STM32中犯过的错
- 微软、黑莓没能做成的事情,华为能做成功吗
- PIC系列单片机的优势
- 教你打造高效空间——客厅、卧室、餐厅、玄关篇
- 天然文化石的选购要点
- 开关电源中的特殊元器件介绍
- 装修拆改、变动承重结构最高要被罚10万!