Tensorflow學習報告

2022-10-10 07:30:11 字數 4783 閱讀 5505

1.1tensorflow作為常量的使用方法

import

tensorflow as tf

#宣告乙個標量常量

t_1=tf.constant(2)

t_2=tf.constant(2)

#常量相加

t_add=tf.add(t_1,t_2)

#乙個形如一行三列的常量向量可以用如下**宣告

t_3=tf.constant([4,3,2])

#定義乙個形狀為[m,n]的全0張量和全1張量

zeros=tf.zeros(shape=[3,3])

ones=tf.ones(shape=[3,3])

1.2tensorflow作為變數的用法

在tensorflow中,模型的權值和偏置常常被定義為變數。變數在建立的時候,需要設定其初始化方法:可以直接賦值,也可以使用初始化函式。

#

直接賦值初始化

import

tensorflow as tf

#直接給變數賦值初始化

bias1=tf.variable(2)

#通過initial_value顯示的賦值初始化

bias2=tf.variable(initial_value=3.)

#使用初始化函式初始化

a=tf.variable(tf.zeros([2,1]))#

將形狀為[2,1]張量初始化為0

b=tf.variable(tf.zeros_like(a))#

返回乙個和給定tensor同樣shape的tensor,其中的元素全部置0

c=tf.variable(tf.ones([2,1]))#

初始化為1

d=tf.variable(tf.ones_like(a))#

將與a乙個形狀的張量初始化為1

e=tf.fill([2,3],4)#

將指定形狀的張量初始化為指定數值

1.3張量(tensor)的屬性

tensorflow程式使用tensor資料結構來代表所有的資料,計算圖中,操作間傳遞的資料都是tensor。我們可以把張量看作是乙個n維的陣列或列表。在tensorflow 2.x中,張量的形狀、型別和值可以通過shape、dtype、numpy()方法獲得

import

tensorflow as tf

a=tf.constant([[1.0,2.0],[3.0,4.0]])

print

(a.shape)

print

(a.dtype)

print(a.numpy())

1.4tensor的基礎運算操作

加、減、乘、除之類的運算

import

tensorflow as tf

print(tf.add(1,2))#

0維張量相加

print(tf.add([1,2],[3,4]))#

一維張量相加

print(tf.matmul([[1,2,3],[[4],[5],[6]]))#

矩陣相乘

print(tf.square(5))#

計算5的平方

print(tf.pow(2,3))#

計算2的3次方

print(tf.square(2)+tf.square(3))#

也支援操作符過載

print(tf.reduce_sum([1,2,3]))#

計算數值的和

print(tf.reduce_mean([1,2,3]))#

計算均值

1.5低階api實現線性回歸

import

tensorflow as tf

import

numpy as np

import

matplotlib.pyplot as plt

input_x=np.float32(np.linspace(-1,1,100))#

在區間[-1,1)內產生100個數的等差數列,作為輸入

input_y=2*input_x+np.random.randn(*input_x.shape)*0.3#

y=2x+隨機雜訊

weight=tf.variable(1.,dtype=tf.float32,name='

weight')

bias=tf.variable(1.,dtype=tf.float32,name='

bias')

def model(x): #

定義了線性模型y=weight*x+bias

pred=tf.multiply(x, weight)+bias

return

pred

step=0

opt=tf.optimizers.adam(1e-1) #

選擇優化器,是一種梯度下降的方法

for x,y in

zip(input_x,input_y):

x=np.reshape(x,[1])

y=np.reshape(y,[1])

step=step+1with tf.gradienttape()as tape:

loss=tf.losses.meansquarederror()(model(x),y)#

連續資料的**,損失函式用mse

grads=tape.gradient(loss,[weight,bias])#

計算梯度

更新引數weight和bias

print("

step:

",step,"

traing loss:

",loss.numpy())

#用matplotlib視覺化原始資料和**的模型

plt.plot(input_x,input_y,'

ro',label='

original data')

plt.plot(input_x, model(input_x),label='

predicted value')

plt.plot(input_x,2*input_x,label='

y=2x')

plt.legend()

plt.show()

print

(weight)

print(bias)

1.6高階api標準化搭建例項

以下為鳶尾花特徵分類實驗,實驗將搭建乙個三層的人工神經網路,用於特徵的分類。

①資料集介紹

iris也稱鳶尾花卉資料集,是一類多重變數分析的資料集。資料集包含150個資料,分為3類,每類50個資料,每個資料報含4個屬性。可通過花萼長度、花萼寬度、花瓣長度、花瓣寬度4個屬性**鳶尾花卉屬於iris setosa(山鳶尾)、iris versicolour(雜色鳶尾),以及 iris virginica(維吉尼亞鳶尾)這3個種類中的哪一類。iris 以鳶尾花的特徵作為資料**,常用在分類操作中。該資料集由3種不同型別的鳶尾花的各50個樣本資料構成。其中的乙個種類與另外兩個種類是線性可分離的,後兩個種類是非線性可分離的。

import

tensorflow as tf

import

numpy as np

from sklearn.datasets import

load_iris

data=load_iris()#

讀取資料集

iris_data=np.float32(data.data)#

獲取資料集中的鳶尾花4個屬性

iris_target=data.target#

獲取鳶尾花的類別

iris_target=tf.keras.util.to_categorical(iris_target,num_classes=3)#

標籤轉為one-hot標籤

train_data=tf.data.dataset.from_tensor_slices((iris_data,iris_target)).batch(128)#

批量載入資料

inputs=tf.keras.layers.input(shape=(4))#

特徵共有四維,所以輸入為4

x=tf.keras.layers.dense(32,activation='

relu

')(inputs)

x=tf.keras.layers.dense(64,activation='

relu

')(x)

outputs=tf.keras.layers.dense(3,activation='

softmax

')(x)

model=tf.keras.model(inputs=inputs,outputs=outputs)

model.compile(optimizer=tf.optimizers.adam(ir=1e-3),loss=tf.losses.categorical_crossentropy,metrics=['

accuracy

'])#

模型編譯

model.fit(train_data,epochs=500)#

模型訓練

score=model.evaluate(iris_data,iris_target)#

模型評估

print("

last score:

",score)

tensorflow 學習 學習中

基於 virtualenv 的安裝 在 linux 上 sudo apt get install python pip python dev python virtualenv 在 mac 上 sudo easy install pip 如果還沒有安裝 pip sudo pip install up...

tensorflow學習筆記

tensorflow安裝可以直接通過命令列或者原始碼安裝,在此介紹tensorflow8命令列安裝如下 安裝tensorflow sudo pip install upgrade 另外,解除安裝tensorflow命令為 sudo pip uninstall tensorflow tensorflo...

Tensorflow學習筆記

1.如何在虛擬機器中安裝tensor flow 1 首先安裝pip pip install 2 pip install 2.學習tensorflow需要學習 python and linux 3.使用 tensorflow,你必須明白 tensorflow 1 使用圖 graph 來表示計算任務.2...