tensorflow基础

关于TensorFlow

 

   tensorflow是谷歌旗下的一个开源的机器学习框架。这个框架的基本的工作原理就是:由多张数组构成的张量(tensor)在图(graph)结点之间定向流动(flow),从输入到输出。所以我们经常说神经网络算法是一种端到端的算法:数据从输入进入到到数据流图中,最终再从数据流图中输出,中间的流动过程就是我们的神经网络结构,并且这种结构可以自动学习(比如自动提取特征),具体如果学习不是我们关心的,我们关心的是搭建用来自主学习的网络结构,由此,很很多时候我们又称神经网络算法是一种黑盒算法,它的可解释性不强。

   在Tensorflow中,每次运算都可以用数据流图(dataflow graph)的方式表示,每个数据流图都有以下两个重要元素:

 

  • 一组 tf.Operation对象,代表运算本身
  • 一组tf.Tensor对象,代表被运算的数据。

你需要知道的一些其他概念:

 

  • 在tensorflow中,tf.Session专门用来封装tf.Operation在tf.Tensor基础上执行的操作环境,在定义好tf.Session之后,我们可以通过tf.Session.run()方法来执行对应的操作。run()方法可以通过fetches参数传入相应tf.Operation对象,并导入与 tf.Operation 相关的所有 tf.Tensor 对象,然后递归执行与当前 tf.Operation 有依赖关系的所有操作;也可以通过feed的方式传入相应参数。
  • Variables:变量,用于表示模型参数,必须被初始化!

  • Placeholder:占位符,用于表示模型的输入输出。

 

tensorflow入门小程序

上面已经介绍了,我们经常见到的基本概念,下面给出一些程序来加深一些印象吧,建议手动打一下代码哦。

import tensorflow as tf

'''
#使用tensorflow进行简单的计算
####################################
x=tf.placeholder('float')#创建变量x
y=tf.placeholder('float')#创建变量y
z=tf.add(x,y)+tf.multiply(x,y)#x与y之和与之积
with tf.Session() as sess:
    print('%.2f should equal 5.00'%sess.run(z,feed_dict={x:1,y:2}))
'''

'''
# hello world
##############################################
hello=tf.constant('hello world!')
with tf.Session() as sess:
    result=sess.run(hello)
    print(result)
'''

'''
# add operation and multiply operation
####################################################
input1=tf.constant(3.0)
input2=tf.constant(2.0)
input3=tf.constant(5.0)
add=tf.add(input1,input2)
mul=tf.multiply(input3,add)
with tf.Session() as sess:
    result=sess.run(mul)
    print(result)
    result1=sess.run([mul,add])#打印多个值
    print(result1)
'''

'''
#矩阵乘法
#######################################
m1=tf.constant([[1.0,2.0]])
m2=tf.constant([[2.0],[3.0]])
print(m1)
print(m2)
product=tf.matmul(m1,m2)
with tf.Session() as sess:
    result=sess.run(product)
    print(result)
'''

'''
#变量操作
######################################
import tensorflow as tf
state=tf.Variable(0)
one=tf.constant(1)
update=tf.assign(state,tf.add(state,one))
with tf.Session() as sess:
    #如果前面有定义变量,此处必须要进行变量初始化操作!
    sess.run(tf.global_variables_initializer())
    for _ in range(3):
        result=sess.run(update)
        print(result)
        result1=sess.run(state.value())
        print(result1)
'''

#自动求导
#################################################
x=tf.Variable(tf.random_uniform([],-1.0,1.0))
b=tf.constant(1.0)
y=3.0*x+b

grad=tf.gradients(y,x)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(grad))#输出应该为3.0,一元方程求导

 

 

后续

在后续的博文,我们将一步步的加深代码的复杂度,一步步进阶,和我一起努力吧!

 所谓的不平凡就是平凡的N次幂!------------------Ada

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱科研的徐博士

请各位看官赏赐,小仙女笔芯笔芯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值