Tensorflow2 0學習筆記 常用函式(一)

2021-10-12 12:51:45 字數 3053 閱讀 2191

1.資料型別轉換函式

# 定義乙個張量

a = tf.constant([[0, 1, 2],

[3, 4, 5],

[6, 7, 8]], dtype=tf.int64)

# 強制轉換型別函式

b = tf.cast(a, tf.float32)

# reduce_max查詢張量中最大的數,axis=x表示對對應的行或者列求和

# 本例中為二維張量,0對應的對列進行操作,1表示對行進行操作

# 如果沒有設定axis則表示在整個張量中進行操作。

max_col = tf.reduce_max(b, axis=0)

max_val = tf.reduce_max(b)

# reduce_max查詢張量中最小的數或者行列

min_row = tf.reduce_min(b, axis=1)

min_val = tf.reduce_min(b)

#根據操作軸求出對應操作軸的均值,沒有設定axis時,得到總的平均值。

mean_col = tf.reduce_mean(b, axis=0)

# 對張量進行求和,axis沒設定時,得到張量所有元素的和

sum_row = tf.reduce_sum(a, axis=1)

#輸出結果b

tf.tensor([6. 7. 8.], shape=(3,), dtype=float32)

tf.tensor(8.0, shape=(), dtype=float32)

tf.tensor([0. 3. 6.], shape=(3,), dtype=float32)

tf.tensor(0.0, shape=(), dtype=float32)

tf.tensor([3. 4. 5.], shape=(3,), dtype=int64)

tf.tensor([ 3 12 21], shape=(3,), dtype=int64)

2.標記可訓練的引數的函式

被標記的引數會在反向傳播中記錄梯度資訊

w = tf.variable(tf.random.normal([2, 2], mean=0.5, stddev=1))
#輸出結果

3.數**算函式

數的加減乘除,次方,平方,開方

注:進行數**算時,必須保證shape,dtype相同才能運算

x = tf.ones([2, 3])

y = tf.fill([2, 3], 5.)

add = tf.add(x, y)

sub = tf.subtract(x, y)

mul = tf.multiply(x, y)

*** = tf.divide(y, x)

pou = tf.pow(y, 3)

sqr = tf.square(y)

sqt = tf.sqrt(y)

#輸出結果

tf.tensor([[1. 1. 1.]], shape=(1, 3), dtype=float32)

tf.tensor([[5. 5. 5.]], shape=(1, 3), dtype=float32)

tf.tensor([[6. 6. 6.]], shape=(1, 3), dtype=float32)

tf.tensor([[-4. -4. -4.]], shape=(1, 3), dtype=float32)

tf.tensor([[5. 5. 5.]], shape=(1, 3), dtype=float32)

tf.tensor([[5. 5. 5.]], shape=(1, 3), dtype=float32)

tf.tensor([[125. 125. 125.]], shape=(1, 3), dtype=float32)

tf.tensor([[25. 25. 25.]], shape=(1, 3), dtype=float32)

tf.tensor([[2.236068 2.236068 2.236068]], shape=(1, 3), dtype=float32)

矩陣乘法運算

x = tf.ones([2, 3])

y = tf.fill([3, 2], 5.)

mat = tf.matmul(x, y)

# 輸出結果

tf.tensor(

[[15. 15.]

[15. 15.]], shape=(2, 2), dtype=float32)

4.求導函式

使用函式,對指定的變數進行求導,注意變數型別。

with tf.gradienttape() as tape:

w = tf.variable(tf.constant(3.0))

loss = tf.pow(w, 2)

grad = tape.gradient(loss, w)

print(grad)

輸出結果:

tf.tensor(6.0, shape=(), dtype=float32)
5.特徵標籤配對函式

使用dataset.from_tensor_slices((特徵,標籤)),對特徵和標籤進行配對,構建資料集

feature = tf.constant([9, 8, 7, 6])

label = tf.constant([0, 1, 1, 0])

dataset = tf.data.dataset.from_tensor_slices((feature, label))

print(dataset)

for element in dataset:

print(element)

# 輸出結果

(, )

(, )

(, )

(, )

tensorflow2 0學習筆記(3 2)

自編碼器變種 1 denoising auto encoder 加隨機雜訊 2 dropout auto encoder 防止過擬合 3 adversarial auto encoder 利用額外的判別器網路來判定降維的隱藏變數?是否取樣先驗分布?對抗自編碼器是從下一章要介紹的生成對抗網路演算法衍生...

Tensorflow2 0學習筆記 建立張量

使用constant建立張量 使用constant函式建立張量 其中 1,5 表示張量內容,dtype表示資料型別 a tf.constant 1,5 dtype tf.int32 輸出a,a的資料型別,a的形狀 print a print a.dtype print a.shape 輸出結果 tf...

tensorflow2 0視訊記憶體設定

遇到乙個問題 新買顯示卡視訊記憶體8g但是tensorflow執行的時候介面顯示只有約6.3g的視訊記憶體可用,如下圖 即限制了我的視訊記憶體,具體原因為什麼我也不知道,但原來的視訊記憶體小一些的顯示卡就沒有這個問題。目前的解決辦法是 官方文件解決 然後對應的中文部落格 總結一下,就是下面的兩個辦法...