Tensorflow學習筆記(一)

一.創建Tensor

首先讓我們先調用相關度的庫

import tensorflow as tf
import numpy as np
1. numpy,list中得到tensor。`
tf.convert_to_tensor(np.ones([2, 3]))
tf.convert_to_tensor(np.zeros([2, 3]))
tf.convert_to_tensor([1, 2])
tf.convert_to_tensor([1, 2.])

zeros, ones分別新建一個全是0和全是1的tensor。結果如下:
在這裏插入圖片描述

在list中一個int類型,一個float類型默認轉換爲float類型。list[1, 2, (1, 2)]這樣是錯誤的,因爲接受的list是可以轉換爲tensor的類型。

2.tf.zeros() 和 tf.zeros_like()
tf.zeros([3,2])
tf.zeros_like([4,3,2])

運行結果如下:

他們的區別在於,tf.zeros_like()是根據傳進來tensor的shape新建一個全0的tensor。

3.Fill
tf.fill([2,2],1)

運行結果如下:
在這裏插入圖片描述
對於fill,它的第一參數爲維度,第二參數爲填充值。

4.正態分佈normal
tf.random.normal([2,2], mean=1, stddev=1

這裏的mean代表均值,stddev代表方差。默認值分別爲0和1
運行結果如下:
在這裏插入圖片描述
爲了去掉偏離過大的正態分佈,也就是隨機出來的數據如果偏離平均值超過兩個標準差,就需要重新生成。我們可以做出以下更改,效果會優於前者:

tf.random.truncated_normal([2,2], mean=1, stddev=1)

運行結果如下:
在這裏插入圖片描述

5.均勻分佈uniform
tf.random.uniform([2,2], minval=0, maxval=1)

minval和maxval分別代表最小和最大值
運行結果如下:
在這裏插入圖片描述

二. 不同維度tensor數據的典型應用

1.scalar 標量的典型應用:loss, accuracy

拿loss作爲例子,直接上代碼:

import tensorflow as tf
out = tf.random.uniform([4, 10])
print(out)
y = tf.range(4)
y = tf.one_hot(y, depth=10)
print(y)
loss = tf.keras.losses.mse(y, out)
print(loss)
loss_ave = tf.reduce_mean(loss)#得到一個平均樣本的loss
print(loss_ave)

out, y, loss, loss_ave的輸出結果分別如下:在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

2.Matrix矩陣典型應用
import tensorflow as tf
from tensorflow.keras import layers
x = tf.random.normal([4, 784])
net = layers.Dense(10)
print(net(x).shape)
print(net.kernel.shape)
print(net.bias.shape)

四張28*28的照片,打平之後變爲784。送入網絡後查看每張照片的維度,並且輸出w和b的維度:在這裏插入圖片描述

3.Dimension=4的tensor應用:圖片
import tensorflow as tf
from tensorflow.keras import layers

x = tf.random.normal((4, 32, 32, 3))
net = layers.Conv2D(16, kernel_size=3)		#卷積對象net,卷積核個數16,卷積核大小3×3
net(x)								    #tensor送入卷積
print(x.shape)

輸出結果:
在這裏插入圖片描述

本文參考來源:TensorFlow2.0筆記
參考來源網址:https://blog.csdn.net/abc13526222160/article/details/89043700

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章