Tensorflow 学习(一)

1.创建图,启动图

#coding=utf-8
import tensorflow as tf
#创建图,启动图
#创建一个常量op
m1=tf.constant([[3,3]])
#创建一个常量op
m2=tf.constant([[2],[3]])
#创建一个矩阵乘法op,把m1和m2传入
product=tf.matmul(m1,m2)
print product
#定义一个会话,启动默认图
sess=tf.Session()
#调用sess的方法来执行矩阵乘法,run(product)触发了图中3个op
result=sess.run(product)
print result
sess.close()

     结果:

                    Tensor("MatMul:0", shape=(1, 1), dtype=int32)

                    [[15]]

2.打开会话,可以用with方式,类似于python中打开文件,这样就不需要写sess.close()

#类似于python中文件打开,还可以这样写:
with tf.Session() as sess:
    result=sess.run(product)
    print result

3.fetch,可以同时运行多个op

#coding=utf-8
import tensorflow as tf

#fetch,同时运行多个op
input1=tf.constant(3.0)
input2=tf.constant(2.0)
input3=tf.constant(5.0)

add=tf.add(input2,input3)
mul=tf.mul(add,input1)

with tf.Session() as sess:
    result=sess.run([mul,add]) #fetch,即同时运行多个op
    print result

      运行结果:[21.0, 7.0]

4.变量使用,注意得初始化:

#coding=utf-8
import tensorflow as tf

x=tf.Variable([1,2])
a=tf.constant([3,3])
sub=tf.sub(x,a)  #没有subtract,而是sub
add=tf.add(x,sub)

#init=tf.global_variables_initializer()
init=tf.initialize_all_variables()  #变量得初始化,再赋值
with tf.Session() as sess:
    sess.run(init)
    print sess.run(sub)
    print sess.run(add)
     结果:[-2 -1]

                 [-1  1]

5.  feed使用。

#coding=utf-8
import tensorflow as tf

#feed
#创建占位符
input1=tf.placeholder(tf.float32)
input2=tf.placeholder(tf.float32)
output=tf.mul(input1,input2)

with tf.Session() as sess:
   #feed的数据以字典的形似传入
    print sess.run(output,feed_dict={input1:[7.],input2:[2.]})

 结果:[14.]

6. 模拟一个简单线性回归。

#coding=utf-8
import tensorflow as tf
import numpy as np

x_data=np.random.rand(100)   #产生100个【0,1】之间均匀分布的随机样本,组成一个数组。
#x_data=np.random.randn(100)   #产生100个符合标准正态分布的随机样本,组成一个数组
#print x_data
y_data=x_data*0.1+0.2
#print y_data

#构建一个线性模型
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b

#二次损失函数
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法,学习率设为0.2
optimizer=tf.train.GradientDescentOptimizer(0.2)
#最小化损失函数
train=optimizer.minimize(loss)

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

with tf.Session() as sess:
    sess.run(init)
    for step in range(201):  #进行200次训练
        sess.run(train)
        if step%20==0:
            print '第%s次迭代' % step,sess.run([k,b])

  结果:

/home/troy/anaconda2/envs/tensorflow/bin/python /home/troy/1.py
第0次迭代 [0.05753546, 0.101332486]
第20次迭代 [0.10610209, 0.19651218]
第40次迭代 [0.10354608, 0.19797316]
第60次迭代 [0.10206071, 0.19882216]
第80次迭代 [0.10119754, 0.19931552]
第100次迭代 [0.100695916, 0.19960223]
第120次迭代 [0.10040441, 0.19976886]
第140次迭代 [0.10023502, 0.19986567]
第160次迭代 [0.100136586, 0.19992192]
第180次迭代 [0.10007937, 0.19995463]
第200次迭代 [0.10004611, 0.19997364]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值