tensorflow学习

在本节学习之前先学习一下python 的几个库:

numpy:来存储和处理大型矩阵(比python内部的列表结构高效)

python 中数据的表示:

1.一维数据:(列表与集合)

   [3.12, 3.13,3.14] 

   {3.13, 3.12.3.14} 

2. 二维数据:(列表类型)

  [[3.12, 3.13],[3.2, 3.3]]

3. 多维数据: 列表类型

4.高维数据:字典类型

dict={

"firstName":"Tian",

"lastName": "Song",

}

numpy 的数据对象为ndarray

ndarray 是N维数组对象: 由两个部分构成:(实际数据和描述数据的元数据如数据维度、数据类型等)

#ndarray实例
#ndarray在程序中的别名是:array
import numpy as np
a = np.array([[0,1,2,3,4],
              [9,8,7,6,5]])
print(a)  #np.array()输出成[]形式,元素由空格分割

ndarray 对象的属性:

.ndim   秩,维度的数量

.shape   adarray 对象的尺度,n行m列

.size    ndarray 对象元素的个数,.shape 中的n*m

.dtype  ndarray 对象的元素类型

.itemsize  ndarray 对象中每个元素的大小

创建ndarray 数组:

x = np.array(list/tuple)

np.arange(n) 类似range()函数,返回ndarray类型,元素从0到n‐1

np.ones(shape) 根据shape生成一个全1数组,shape是元组类型

np.zeros(shape) 根据shape生成一个全0数组,shape是元组类型

np.full(shape,val) 根据shape生成一个数组,每个元素值都是val

np.eye(n) 创建一个正方的n*n单位矩阵,对角线为1,其余为0

np.ones_like(a) 根据数组a的形状生成一个全1数组

np.zeros_like(a) 根据数组a的形状生成一个全0数组

np.full_like(a,val) 根据数组a的形状生成一个数组,每个元素值都是val

np.linspace() 根据起止数据等间距地填充数据,形成数组

np.concatenate() 将两个或多个数组合并成一个新的数组

对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换

.reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变

.resize(shape) 与.reshape()功能一致,但修改原数组

.swapaxes(ax1,ax2) 将数组n个维度中两个维度进行调换

.flatten() 对数组进行降维,返回折叠后的一维数组,原数组不变

Matplotlib:

python中的绘图系统,

  scipy:

统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器

scikit-learn:

机器学习工具, 如svm等方法都包含其中:

首先创建所需算法的对象,然后在训练和测试集上构建一个模型获得预测:

clf=svm.SVC(gamma=0.001,C=100)
# train
clf.fit(x,y)
# test
clf.predict(X_test)

  

正式开始

tensorflow 和 numpy相似

tensorflow 的操作基本都是对session的操作,首先构建所有操作的Graph,然后调用session运行操作。tensorflow将内部数据表示转换的张量(Tensor,多维数组),整个Graph就是“张量流”,可以轻松地可视每个图中的每个部分, data flow graphs。graph 中的节点为数学操作,图中的边为节点间相互联系的多维数据数组(tensor)。变量保持自己的状态信息。

在tensorflow 中运行程序的通常工作流程为:

  • 建立一个计算图    (构建节点和边)
  • 初始化变量  (预选定义参数)
  • 创建session
  • 在session 中运行图
  • 关闭session

需要主要的地方:

1. 既然先创建结构,在session创建之后才run,数据输入是怎么进行的?

     首先使用placeholder  定义输入的数据的类型,大小,作为graph的输入

     在真正run的时候使用feed_dict 将数值传递到计算图的字典中feed_dict={a: 2, b: 3}

     

原文地址:https://www.cnblogs.com/fanhaha/p/7266514.html