tensorflow學習日記 01

2021-08-20 11:22:26 字數 2708 閱讀 7912

命令列引數

全域性環境下編寫**

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...