1可扩展参数: 从 kwargs 字典里获取,可限制key的取值
vars : name scope 下的变量(字典)
placeholders : 外部变量占位,一般是特征和标签(字典)
layers : 神经网络的 layer (列表)
activations : 每个 layer 的输出结果(列表)
inputs : 输入
output : 输出
loss : 损失
accuracy : 准确率
optimizer :优化器
opt_op :最优化的 op *** 作
_build 是私有 build 方法,在继承Model的具体实现时对 layers 进行 append *** 作,下面介绍 build 方法:
调用 _build ,所有变量设置共享空间( selfname )
构建模型序列:给输入,通过layer()返回输出,又将这个输出再次作为输入到下一个 layer() 中,循环这一过程;最终,取最后一层 layer 的结果作为 output
保存 name scope下 的变量到 selfvars
模型效果度量: _loss 方法, _accuracy 方法
常用的结构化数据文件格式有csv、txt 、libsvm,本篇文章主要说明结构化数据(csv/txt)如何在TF框架进行高效、灵活的读取,避免一些不合理的方式,迈出算法开发标准化、工程化的第一步。
最常见的读取数据的方式是利用pandas包将csv、txt读取为DataFrame,一次全部放入内存。这是一种非常低效的方式,应该尽量避免这种读取方法。其他第三方封装python读取方式的包(TFLearn等)也不建议使用,推荐使用TF框架的OP *** 作进行数据读取。
高效的 TensorFlow 读取方式是将数据读取转换成 OP,通过 session run 的方式拉去数据。读取线程源源不断地将文件系统中的文件读入到一个内存的队列中,而负责计算的是另一个线程,计算需要数据时,直接从内存队列中取就可以了,这样就可以解决GPU因为IO而空闲的问题。同时,不会一次性的preload到内存,再大的数据量也不会超出内存的限制。
梯度下降 :梯度下降是一个在机器学习中用于寻找较佳结果(曲线的最小值)的迭代优化算法。梯度的含义是斜率或者斜坡的倾斜度。下降的含义是代价函数的下降。
算法是迭代的,意思是需要多次使用算法获取结果,以得到最优化结果。梯度下降的迭代性质能使欠拟合演变成获得对数据的较佳拟合。
梯度下降中有一个称为学习率的参量。如上图左所示,刚开始学习率较大,因此下降步长更大。随着点的下降,学习率变得越来越小,从而下降步长也变小。同时,代价函数也在减小,或者说代价在减小,有时候也称为损失函数或者损失,两者是一样的。(损失/代价的减小是一个概念)。
只有在数据很庞大的时候(在机器学习中,数据一般情况下都会很大),我们才需要使用epochs,batch size,iteration这些术语,在这种情况下,一次性将数据输入计算机是不可能的。因此,为了解决这个问题,我们需要把数据分成小块,一块一块的传递给计算机,在每一步的末端更新神经网络的权重,拟合给定的数据。
(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
(2)iteration:1个iteration等于使用batchsize个样本训练一次;
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;
Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐 *** 作。
1 基本使用:创建DataFrame DataFrame是一张二维的表,大家可以把它想象成一张Excel表单或者Sql表。Excel 2007及其以后的版本的最大行数是1048576,最大列数是16384,超过这个规模的数据Excel就会d出个框框“此文本包含多行文本,无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的sh事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的 *** 作,要写的code也更少。
说了一大堆它的好处,要实际感触还得动手码代码。首要的任务就是创建一个DataFrame,它有几种创建方式:
(1)列表,序列(pandasSeries), numpyndarray的字典
二维numpyndarray
别的DataFrame
结构化的记录(structured arrays)
(2)其中,二维ndarray创建DataFrame,代码敲得最少:
import pandas as pd
import numpy as np
df = pdDataFrame(nprandomrandn(10, 4))
df
0 1 2 3
0 0927474 0127571 1655908 0570818
1 -0425084 -0382933 0468073 -0862898
2 -1602712 -0225793 -0688641 1167477
3 -1771992 -0692575 -0693494 -1063697
4 -0456724 0371165 1883742 -0344189
5 1024734 0647224 1134449 0266797
6 1247507 0114464 2271932 -0682767
7 -0190627 -0096997 -0204778 -0440155
8 -0471289 -1025644 -0741181 -1707240
9 -0172242 0702187 -1138795 -0112005
(3)通过describe方法,可以对df中的数据有个大概的了解:
dfdescribe()
0 1 2 3
count 10000000 10000000 10000000 10000000
mean -0189096 -0046133 0394722 -0320786
std 1027134 0557420 1258019 0837497
min -1771992 -1025644 -1138795 -1707240
25% -0467648 -0343648 -0692281 -0817865
50% -0307856 0008734 0131648 -0392172
75% 0652545 0310266 1525543 0172096
max 1247507 0702187 2271932 1167477
2 改变cell。
3 group by。
4 读写文件。
以上就是关于TensorFlow入门全部的内容,包括:TensorFlow入门、pandas怎么读取.data数据、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)