tensorflow学习

np.random.randn():
在这里插入图片描述

tensorflow eager 动态图机制

官方教程
tensorflow的Eager execution:命令式编程环境,立即评估操作不需要构建图,操作会返回具体的值,可以轻松地调试TensorFlow代码。
启动Eager execution:

tf.enable_eager_execution()
tfe = tf.contrib.eager # eager模块

reduce_sum(reduction_indices) 参数的理解

在这里插入图片描述
引用博客

tf.argmax()

取每列最大值的索引:

test = np.array([[1, 2, 3], [2, 3, 4], [5, 4, 3], [8, 7, 2]])
np.argmax(test, 0)   #输出:array([3, 3, 1]
np.argmax(test, 1)   #输出:array([2, 2, 0, 0]

tf.cast()

将x的数据类型转化为dtype

cast(
    x,
    dtype,
    name=None
)

eval()和run()的区别

eval和run都是用来获取当前节点值的函数。使用eval时,若有一个t是tensor对象,调用t.eval()相当于调用sess.run(t), 主要区别是eval一次只能获得一个节点值,run可以得到多个。

tip: 分屏,windows—>editor tab----> split vertically

以下两个函数的区别:

tf.nn.sparse_softmax_cross'_entropy_with_logits(logits=net, labels=y)
tf.nn.softmax_cross_entropy_with_logits(logits=net, labels=y2)

sparse_softmax_cross_entropy_with_logits中 lables接受直接的数字标签
如[1], [2], [3], [4] (类型只能为int32,int64)
而softmax_cross_entropy_with_logits中 labels接受one-hot标签
如[1,0,0,0], [0,1,0,0],[0,0,1,0], [0,0,0,1] (类型为int32, int64)

相当于sparse_softmax_cross_entropy_with_logits 对标签多做一个one-hot动作

K邻近算法

参考博客

kmeans聚类算法

参考博客
思想:无监督学习算法,把一堆没有label的数据自动划分为几类,同类数据具有相同特征,一类数据内部的样本相似度高,不同类的差异性高。
K值:分类的类个数
质心:每个类的均值向量,即向量各维取平均
距离度量指标:欧氏距离和余弦相似度
在这里插入图片描述
算法过程:
在这里插入图片描述

mini-batch是什么

滑动平均模型用于提高测试集数据的鲁棒性,当数据变化太快时提供了一种机制

参考博客

贝叶斯算法 先验概率和后验概率

参考博客
总结:后验概率是由果推导原因的公式。
参考博客!很好!
这个男女生穿凉鞋的例子真是太好了!看了很多次也没看懂的贝叶斯这次终于看懂了- A -

normal分布和truncated_normal

Normal Distribution称为正态分布,也称为高斯分布,Truncated Normal Distribution一般翻译为截断正态分布,也有称为截尾正态分布.截断正态分布是截断分布(Truncated Distribution)的一种,是指,限制变量x取值范围(scope)的一种分布。例如:

  • 限制x取值在0到50之间
  • 限制取值上限
  • 限制取值下限
  • 上限下限取值都限制

正态分布可以认为是不进行任何截断,因为x取值可以从负无穷到正无穷。

让变量x的取值,进行截断,有什么意义呢? 通常,如果我们只关心在某一个范围内的样本的分布时,会考虑使用截断的方法。例如,假设我们知道一个班级学生的成绩,是服从正态分布的,那么,这个班级中,如果只观察考试成绩前10名的同学,那么他们服从什么分布呢?

知道了什么是截断分布,理解截断正态分布就容易了。如果,原来X服从正态分布,那么,对X的取值加一些限制条件之后,带有限制条件的X就服从截断正态分布了。同样,限制条件还是分为三种情况:限制取值上限、限制取值下限、上限下限取值都限制。因此,截断正态分布,除了具有正态分布的两个参数——均值、方差之外,还有另外两个参数:
取值上限(可以取正无穷)
取值下限(可以取负无穷)

tf.truncated_normal(stddev):
truncated_normal(
    shape,
    mean=0.0,
    stddev=1.0,
    dtype=tf.float32,
    seed=None,
    name=None
)
# 产生截断正态分布随机数,取值范围为 [ mean - 2 * stddev, mean + 2 * stddev ]。

global_Step

参考博客

embedding_lookup()

参考博客

Estimator

参考博客
Estimator可以帮我们做什么:

  1. 建立、管理graph和Session对象
  2. 初始化variables
  3. 开始 queues。
  4. 处理 exceptions。
  5. 创建 checkpoint 文件,从失败中恢复训练。
  6. 保存 summaries for TensorBoard
    input pipeline和model是分离的,简化了在不同数据集上的实验过程,使你在最小的代码修改量的情况下实验不同的模型结构。

使用内置estimator程序的步骤:
(1)编写数据集导入函数, 一个数据集导入函数返回两个对象:

  • 一个字典: 特征名—>表示特征数据的tensor
  • 一个tensor : 包含一个或多个label
def input_fn(dataset):
   ...  # manipulate dataset, extracting the feature dict and the label
   return feature_dict, label

(2)定义feature columns, 以定义feature的名字、类型等
(3)实例化内置estimator
(4)调用training/evaluation/inference方法

推荐将内置estimator作为问题解决的一个baseline。

Dataset API

参考博客
在这里插入图片描述
各个类如下所示:

Dataset:创建、变换数据集的方法 的基类。您还可以通过该类从 内存中的数据 或 Python 生成器 初始化数据集。
TextLineDataset:从文本文件读取行。
TFRecordDataset:从 TFRecord 文件读取 records。
FixedLengthRecordDataset:从二进制文件读取固定大小的 records。
Iterator: 提供一次访问一个数据集元素的方法。

决策树

随机森林

随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,这就是一种最简单的 Bagging 思想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值