Tensorflow入门一-基本方法及tensorboard可视化

首先,爆炸安利一个免费的在网易云课堂上的课程--深度学习应用开发TensorFlow实践https://mooc.study.163.com/course/2001396000

现在是2019年4月份可免费加入课程,进行学习。在手机网易云课堂APP上下载了所有视频,个人评价满分。但是吧,可能因为这门课针对的群体问题,老师讲的非常慢,1.5倍速都较慢,很多内容比较长,但是绝对是讲的简单、具体,碰见太过熟悉的内容跳过就好啦。


下一篇:Tensorflow入门二-单变量线性回归https://blog.csdn.net/qq_36187544/article/details/89445851

tensorboard可视化在文末


搭环境安装TensorFlow等就跳过。

TensorFlow是通过数据流的形式管理算法进展,所以会话session就提出来了,每次建立时建立会话,然后通过会话进行流运行,最后关闭session。节点为常量和变量等,边为运算

通过关键词管理管理session,可自动释放资源。下面的例子很不详细,记录下session概念而已

with tf.Session() as sess:   
    sess.run()

也可以通过try的方式:

sess=tf.Session()
try:   
    sess.run()
except:   
    pass
finally:   
    sess.close()

eval计算的使用:
 

result=tf.add(node1,node2)#node为节点
with sess.as_default:   
    print(result.eval()) 

#如果没有缺省值,就要这样写: 
result.eval(session=sess) #result.eval() 错误


#在交互式环境下通过设置默认会话:
sess=tf.interactiveSession()result.eval()sess.close()

常量与变量的使用:

#常量字母小写,变量大写,1.0默认float32,1默认int32
tf.constant(1.0,name="abc")
v1=tf.Variable(1,name='v1')

#变量需要初始化,常量不需要
init_op=v1.initializer()#单个变量初始化

init_op=tf.global_varibles.initializer()#所有初始化

sess.run(init_op)#初始化操作是需要运行,不加这句仍旧是静态图,无法执行
#由于TensorFlow无需手动赋值,若要手动赋值,可采用assign
v1=tf.Variable(1,name='v1')
update_value=tf.assign(v1,v2)#v2为其他变量或常量

#占位符,类似C和python中格式化输出%
L1损失,指实际与预测的差值
平方损失(L2损失),指差值平方
均方损失(MSE),指平方损失的均值


以上为初步认识下tensorflow,还是根据代码来认识才到位,看视频和自己码一遍真不是一样,如果想要自己实现又更进一步

需要注意的是,整个迭代过程中,没有赋值和计算等算式,但已经在前面定义了,可理解成函数形式

import tensorflow as tf

# 通过变量计算1+2+3..+10
value = tf.Variable(0,name='value')
one = tf.constant(1)
add_part = tf.Variable(0)
add_update = tf.assign(add_part, tf.add(add_part,one))
new_value = tf.add(value,add_update)
update_value = tf.assign(value,new_value)

init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    for _ in range(10):
        sess.run(update_value)
        print(sess.run(value))

执行结果:

占位符的使用,使用feed_dict进行填充数据,需要注意的是占位符的使用和feed_dict,以及同时多个操作,拆包

import tensorflow as tf

a = tf.placeholder(tf.float32,name='a')
b = tf.placeholder(tf.float32,name='b')
c = tf.multiply(a, b, name = 'c')


init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    # 占位符placeholder,一定通过feed_dict方法传递参数
    result = sess.run(c,feed_dict={a:8.0,b:3.5})
    print(result)
    
    #多个操作可通过一次feed完成
    d = tf.subtract(a,b,name='d')
    result = sess.run([c,d] , feed_dict={a:[8.0,2.0,3.5],b:[3.5,2.0,4.]})
    print(result)
    #也可拆包
    rc,rd = sess.run([c,d] , feed_dict={a:[8.0,2.0,3.5],b:[3.5,2.0,4.]})
    print(rc)
    print(rd)

执行结果为:


tensorborad可视化展示,查看数据流图:

import tensorflow as tf


# 启动时,使用Anaconda Prompt进入日志存放目录(为linux操作,常用操作为cd a进入a文件,dir查看所有文件,
# 到日志目录输入(logdir=后为本机目录,我的是下面这个)
# tensorboard --logdir=C:\Users\ASUS\Desktop\tensorflow\log
# 打开后控制器开启,打开网页输入localhost:6006即可
# 注意:Edge浏览器抽风打不开的!


#清除default_graph
tf.reset_default_graph()
#logdir路径,注意\t会被转义,所以直接都加\\好了
logdir='C:\\Users\\ASUS\\Desktop\\tensorflow\\log'

#直接沿用之前的代码
value = tf.Variable(0,name='value')
one = tf.constant(1)
add_part = tf.Variable(0)
add_update = tf.assign(add_part, tf.add(add_part,one))
new_value = tf.add(value,add_update)
update_value = tf.assign(value,new_value)

init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    for _ in range(10):
        sess.run(update_value)
        print(sess.run(value))

#生成一个写日志的writer,将当前tf计算图写入日志
writer = tf.summary.FileWriter(logdir,tf.get_default_graph())
writer.close()

anaconda prompt输入,开启Localhost:6006网址,查看数据流图:

 输入Localhost:6006将直接进入:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值