命令列引數
全域性環境下編寫**
import tensorflow as tf
flags = tf.flags # flags 是乙個檔案:flags.py,用於處理命令列引數的解析g工作
logging = tf.logging
# 呼叫flags內部的define_string行數來制定解析規則
flags.define_string("para_name_1", "default_val", "description")
flags.define_bool("para_name_2", "default_val", "description")
# flags是乙個物件,儲存了解析後的命令引數
flags= flags.flags
defmain
(_):
flags.para_neme # 呼叫命令列輸入的引數
if __name__ == "__main__": # 使用這種方式保證了,如果此檔案被其他檔案import時,不會執行main中的**
呼叫方法:
# 不傳的話,會使用預設值
列印輸出tensor的值
使用tensorflow計算時,print只能列印出shape的資訊,而要列印輸出tensor的值,需要借助 tf.session, 因為我們在建立graph的時候,只建立tensor的結構形狀資訊,並沒有執行資料的操作。
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
sess = tf.session() # 方式一
print(sess.run(c))
with tf.session():
print(c.eval()) # 方式二
tensor變換
矩陣操作
# 對於2-d
# 所有的reduce_...,如果不佳axis的話都是對整個矩陣進行運算
tf.reduce_sum(a, 1)# 對axis1
tf.redcue_mean(a, 0)# 每列均值
第二個引數是axis,如果為0的話,re
s[i]
=∑ja
[j,i
]=∑a
[:,i
] res
[i]=
∑ja[
j,i]
=∑a[
:,i]
,如果是1的話,re
s[i]
=∑ja
[i,j
]=∑a
[i,:
] res
[i]=
∑ja[
i,j]
=∑a[
i,:]
tf.concat(data, concat_dim) # 關於concat,可以用來降維
tf.concat([t1, t2],0) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2],1) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
concat是將list中的向量給連線起來,axis表示將那維的資料連線起來,而其他維的結構保持不變
# squeeze 降維 維度為1的降掉
tf.squeeze(arr, )
arr = tf.variable(tf.truncated_normal([3,4,1,6,1], stddev=0.1))
arr2 = tf.squeeze(arr, [2,4])
arr3 = tf.squeeze(arr)
# split
tf.split(value, num_or_size_splits, axis=0, name='split')
split0, split1, split2 = tf.split(1, 3, value)
tf.shape(split0) ⇒ [5, 10]
# embedding
mat = np.array([1,2,3,4,5,6,7,8,9]).reshape((3, -1))
ids = [[1,2], [0,1]]
res = tf.nn.embedding_lookup(mat, ids)
res ==> [[[4 5 6], [7 8 9]],
[[1 2 3], [4 5 6]]]
# 擴充套件維度,如果想用廣播特性的話,經常會用到這個函式
# 't' is a tensor of shape [2]
tf.expand_dims(t, 0).shape ==> [1, 2]
tf.expand_dims(t, 1).shape ==> [2, 1]
tf.expand_dims(t, -1).shape ==> [2, 1]
# 't2' is a tensor of shape [2, 3, 5]
tf.expand_dims(t2, 0).shape ==> [1, 2, 3, 5]
tf.expand_dims(t2, 2).shape ==> [2, 3, 1, 5]
tf.expand_dims(t2, 3).shape ==> [2, 3, 5, 1]
Tensorflow學習筆記No 0
這裡更新一些學習tensorflow過程中可能用到的實用工具。jupyter notebook 是乙個非常方便的python程式設計工具,支援視覺化,對於學習python而已非常的實用。可以使用anaconda3進行安裝。安裝了tensorflow的小夥伴應該都安裝過anaconda,這裡就不再介紹...
44b0學習日記
對44b0的學習,正在如火如荼的進行中。下面說說我今天的進步吧 1 將boatloader編譯成功 2 將編成的u boot.bin下到ram中執行 3 將編成的u boot.bin燒到了flash中 位址為0x0000 方法是先從pc上通過串列埠loadb到記憶體中,再cp到flash中。4 將測...
TensorFlow學習日記(4) 線性回歸方程
今天進行了線性回歸方程的簡單程式設計,如下 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt 隨機生成1000個點,圍繞在y 0.1x 0.3的直線周圍 num points 1000 vectors...