人工智能:tensorflow从零开始学习笔记

tensorflow官网的学习步骤已经算比较简单 

但在学习中感觉入手还是有一些困难,尤其是需要学习周边的各种知识

下面把我从真正的零开始到 tensorflow官网例子之间的学习体会。

tensorflow官网定义:

TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。


我的理解:

就是构造了一种框架,我们利用这个框架设计一种计算过程(或者叫计算方法),通过输入数据,让这个计算方法有效,并得出结果   类似python 的匿名函数(如lambda)

首先导入库

import tensorflow as tf
import numpy as np

第一种:

下面是最简单的,真正的helloworld

定义常量,创建对话(Session),执行(run)对话,也就是处理方法的执行

# ------最简单的hello world
print('------最简单的hello world')
hello = tf.constant('hello tensorflow')
sess = tf.Session()
print(sess.run(hello))

a = tf.constant(3)
b = tf.constant(6)
print(sess.run(a+b))

显示结果:

------最简单的hello world
b'hello tensorflow'

9

第二种:

定义常量,定义变量(X),定义计算过程(Y,Z),执行对话(计算过程)


# ------000000000000000000
# ------最简单的计数器
print('------最简单的计数器')
one = tf.constant(1)
x = tf.Variable(0)
y = tf.add(x, one)
z = tf.assign(x,y)
init = tf.global_variables_initializer() #有变量必须先有初始化

with tf.Session() as sess:
    sess.run(init)                       #有变量必须先有初始化
    for _ in range(3):
        print('y=', sess.run(y),',z=', sess.run(z))

print('计算器 也可以 同时取回多了操作执行的值 Fetch ')
#同时取回多了操作执行的值 Fetch
with tf.Session() as sess:
    sess.run(init)
    for _ in range(3):
        result = sess.run([y, z])
        print('result',result)

显示结果:

------最简单的计数器

y= 1 ,z= 1
y= 2 ,z= 2
y= 3 ,z= 3
计算器 也可以 同时取回多了操作执行的值 Fetch 
result [1, 1]
result [2, 2]
result [3, 3]

第三步:

和tensorflow官网一样的例子

构造一个 线性模型(计算方法y=wx+b)

通过计算最小方差(loss),设置分类器(optimizer):梯度下降每次0.5,设计成训练模型(train),也叫计算过程

在train计算过程中,权值w和偏量b不断自动调整变化,直到和预想无限接近

# ------最简单的人工智能应用
print('------最简单的人工智能应用')
# ------通过训练 得到 y = wx + b 中 权值w 和偏量b的结果
# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
x_data = np.float32(np.random.rand(2, 300)) # 随机输入
#print('x_data=',x_data)
y_data = np.dot([0.100, 0.200], x_data) + 0.300
#print('y_data=',y_data)

# 构造一个线性模型
# 
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b

# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
print("loss=",loss)
print("train=",train)

# 初始化变量
init = tf.initialize_all_variables()

# 启动图 (graph)
sess = tf.Session()
sess.run(init)

# 拟合平面
for step in range(0, 301):
    sess.run(train)
    if step % 20 == 0:
        print (step, sess.run(W), sess.run(b))

# 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]

显示结果:

------最简单的人工智能应用
loss= Tensor("Mean:0", shape=(), dtype=float32)
train= name: "GradientDescent"

0 [[0.8115538  0.17430243]] [-0.11786449]
20 [[0.28122652 0.2500236 ]] [0.18161136]
40 [[0.14824559 0.2242809 ]] [0.2625336]
60 [[0.11363102 0.20908526]] [0.28820705]
80 [[0.10401098 0.20309886]] [0.29629898]
100 [[0.10121081 0.20101358]] [0.29884037]
120 [[0.10037113 0.20032465]] [0.299637]
140 [[0.10011476 0.20010285]] [0.2998864]
160 [[0.10003567 0.20003238]] [0.29996446]
180 [[0.10001112 0.20001018]] [0.2999889]
200 [[0.10000347 0.20000318]] [0.29999653]
220 [[0.10000107 0.20000097]] [0.29999894]
240 [[0.10000033 0.20000029]] [0.29999968]
260 [[0.1000001  0.20000009]] [0.2999999]
280 [[0.1000001  0.20000009]] [0.2999999]
300 [[0.1000001  0.20000009]] [0.2999999]

是不是有一点感觉了?我是有了

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值