tensorflow-week1

Tensorflow基本概念:

  • 使用图(graphs)来表示计算任务
  • 在被称为会话(Session)的上下文(context)中执行图
  • 使用tensor表示数据
  • 通过变量(Variable)维护状态
  • 使用feed和fetch可以为任意的操作复制或者从其中获取数据

Tensorflow是一个 编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation),一个op获得0个或多个Tensor,执行计算,产生0个或多个tensor,tensor看作是一个n维的数组或列表。图必须在会话里启动。

会话和图的创建与使用

#创建一个常量op
m1=tf.constant([[3,3]])
m2=tf.constant([[2],[3]])
#矩阵相乘
product=tf.matmul(m1,m2)
print(product)
print("test")

上述只是一个操作,没用放在会话里,所以也不会执行

#定义一个会话,启动默认图
sess=tf.Session()
result=sess.run(product)
print(result)
sess.close()
with tf.Session() as sess:
    result=sess.run(product)
    print(result)

变量的创建与使用

shift+tab查询描述

tab键补全

shift+enter运行块

#定义变量
#shift+tab查询描述
x=tf.Variable([1,2])
a=tf.constant([2,3])
add=tf.add(x,a)
sub=tf.subtract(x,a) 
init=tf.global_variables_initializer()


with tf.Session() as sess:
    sess.run(init)
    ad=sess.run(add)
    su=sess.run(sub)
    print(ad,su)

根据变量实现循环

#创建变量初始化为0
state=tf.Variable(0,name="counter")
new_value=tf.add(state,1)
#赋值操作
update=tf.assign(state,new_value)
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    print(sess.run(state))
    for _ in range(5):
        sess.run(update)
        print(sess.run(state))

fetch和feed:

fetch:执行多个op,得到执行结果

x1=tf.constant(3.0)
x2=tf.constant(2.0)
x3=tf.constant(4.0)
add=tf.add(x1,x2)
mul=tf.multiply(x2,x3)


with tf.Session() as sess:
    print(sess.run([add,mul]))

feed

# 创建占位符
v1=tf.placeholder(tf.float32)
v2=tf.placeholder(tf.float32)
mul=tf.multiply(v1,v2)

with tf.Session()as sess:
    print(sess.run(mul,feed_dict={v1:[2.4,1],v2:[2.0,23]}))

线性回归的实现

#生成100个随机点
x_data=np.random.rand(100)
y_data=0.1*x_data+0.2
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b
# 二次代价函数
# 平均值
loss=tf.reduce_mean(tf.square(y_data-y))
# 梯度下降法进行训练的优化器(学习率)
optimizer=tf.train.GradientDescentOptimizer(0.2)
train=optimizer.minimize(loss)
init=tf.global_variables_initializer()


with tf.Session() as sess:
    sess.run(init)
    for step in range(201):
        sess.run(train)
        if(step%20==0):
            print(step,sess.run([k,b]))

1.数据集准备

2.计算损失值

3.定义优化器

4.使用优化器最小化损失值----这就是训练op

5.定义训练循环次数,运行训练操作

猜你喜欢

转载自blog.csdn.net/qq_33420835/article/details/89527421
今日推荐