tensorflow1、2会话、变量、feed、fetch、最小二乘法
生活随笔
收集整理的這篇文章主要介紹了
tensorflow1、2会话、变量、feed、fetch、最小二乘法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第一節(jié)課
tensorboard–可以查看訓(xùn)練效果
安裝ananconda(略)
tensorflow簡介
tensorflow結(jié)構(gòu)
是個(gè)數(shù)據(jù)流動(dòng)的趨勢,
graph1:默認(rèn)圖
graph2:W*x+b->ReLU
2-1 基本計(jì)算-會(huì)話的使用
import tensorflow as tf # 創(chuàng)建一個(gè)常量op,1*2 m1=tf.constant([[3,3]]) # 2*1 m2=tf.constant([[2],[3]]) # 矩陣乘法2*3+3*3=15 product=tf.matmul(m1,m2) print(product) # Tensor("MatMul:0", shape=(1, 1), dtype=int32)因?yàn)闆]有放到圖和會(huì)話中,所以沒有值
# 定義會(huì)話,會(huì)有一個(gè)默認(rèn)的圖,可以直接用 sess=tf.Session() # 調(diào)用sess的run來執(zhí)行矩陣乘法op # run(product)觸發(fā)了圖的三個(gè)op result=sess.run(product) print(result) sess.close() # [[15]]另一種啟動(dòng)會(huì)話的方式
with tf.Session() as sess:result = sess.run(product)print(result)# [[15]]2-2 變量
import tensorflow as tfx=tf.Variable([1,2]) a=tf.constant([3,3]) # 增加一個(gè)減法op sub=tf.subtract(x,a) # 增加一個(gè)加法op add=tf.add(x,sub)# 給所有變量初始化 # 不初始化的話,會(huì)報(bào)錯(cuò) init=tf.global_variables_initializer()with tf.Session() as sess:sess.run(init)#運(yùn)行才會(huì)初始化result1 = sess.run(sub)print(result1)result = sess.run(add)print(result)賦值不能直接賦值,自加如下
# 自加,state=0 state=tf.Variable(0,name='counter')#可以起名字 #state+1 new_value=tf.add(state,1) # 賦值op state=state+1 update=tf.assign(state,new_value) # 變量初始化 init=tf.global_variables_initializer() with tf.Session() as sess:sess.run(init)#運(yùn)行才會(huì)初始化result1 = sess.run(state)print(result1)for _ in range(5):sess.run(update)print(sess.run(state))2-3 fetch and feed
Fetch
import tensorflow as tf # fetch input1=tf.constant(3.0) input2=tf.constant(2.0) input3=tf.constant(5.0)add=tf.add(input2,input3) # input1*(input2+input3) mul=tf.multiply(input1,add)with tf.Session() as sess:result=sess.run([mul,add])#這個(gè)叫fetch?可以同時(shí)運(yùn)行多個(gè)print(result)# [21.0, 7.0]feed
placeholder的變量是初始值待定的,feed以字典傳入。
# feed # 創(chuàng)建占位符 input1=tf.placeholder(tf.float32) input2=tf.placeholder(tf.float32) output=tf.multiply(input1,input2) with tf.Session() as sess:# feed以字典形式傳入print(sess.run(output,feed_dict={input1:[7.0],input2:[2.0]}))# [14.]tensorflow的簡單實(shí)用案例——最小二乘法
import tensorflow as tf import numpy as np # 使用numpy生成100個(gè)隨機(jī)點(diǎn) x_data=np.random.rand(100) y_data=x_data*0.1+0.2# 構(gòu)造一個(gè)線性模型 b=tf.Variable(0.) k=tf.Variable(0.) y=k*x_data+b# 定義一個(gè)二次代價(jià)函數(shù) loss=tf.reduce_mean(tf.square(y_data-y))#(y_data-y)的平方然后求了個(gè)均值 # 定義一個(gè)梯度下降法來進(jìn)行訓(xùn)練的優(yōu)化器 optimizer=tf.train.GradientDescentOptimizer(0.2)#學(xué)習(xí)率=0.2 # 定義一個(gè)最小化代價(jià)函數(shù) train=optimizer.minimize(loss)init=tf.global_variables_initializer()with tf.Session() as sess:sess.run(init)for step in range(201):print(sess.run([train,k,b,loss]))# [None, 0.049395364, 0.09887357, 0.061785623] # …… # [None, 0.09999921, 0.20000039, 4.515499e-14] # [None, 0.09999923, 0.20000039, 4.2725822e-14]總結(jié)
以上是生活随笔為你收集整理的tensorflow1、2会话、变量、feed、fetch、最小二乘法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RISC-V正在采取行动,避免MIPS类
- 下一篇: 10 计算机组成原理第六章 总线 总