【Tensor】(張量)的基本概念和操作

every blog every motto: Just live your life cause we don’t live twice.

0. 前言

有關張量的基本概念和操作

1. 正文

1.1 什麼是tensor

不嚴謹的的說,標量、向量、矩陣、多維數組等都叫tensor,(和numpy類似,不同點在於內置了GPU加速,提高計算速度而已。)
在這裏插入圖片描述

1.2 基本操作

1.2.1 創建tensor

import tensorflow as tf
tf.constant(1)

在這裏插入圖片描述

tf.constant(1.)

在這裏插入圖片描述
可指定數據類型

tf.constant(2.,dtype=tf.double)

在這裏插入圖片描述

tf.constant([True,False])

在這裏插入圖片描述

tf.constant('hello world.')

在這裏插入圖片描述

1.2.2 tensor屬性

1.2.2.1 指定生成數據位置

方法一:

with tf.device('cpu'):
    a = tf.constant([1])
a.device

數據指定在cpu上,如下圖
在這裏插入圖片描述

with tf.device('gpu'):
    b = tf.range(4)
b.device

數據指定在gpu上
在這裏插入圖片描述
**方法二:**使用默認位置

g = tf.constant([2])
g.device

cpu上
在這裏插入圖片描述

v = tf.range(3)
v.device

在這裏插入圖片描述

1.2.2.2 改變數據位置

aa = a.gpu()
aa.device

數據由cpu改變成到gpu
在這裏插入圖片描述

bb = b.cpu()
bb.device

數據有gpu改變成到cpu
在這裏插入圖片描述

1.2.2.3 tensor -> numpy

tensor 轉成 numpy

t = b.numpy()
t

在這裏插入圖片描述
numpy查看維度

t.ndim

在這裏插入圖片描述

1.2.2.4 查看tensor是幾維

h = tf.range(5)
h

在這裏插入圖片描述

tf.rank(h)

查看維度如下圖
在這裏插入圖片描述

1.2.2.5 判斷一個參數是否是tensor

a = tf.constant([1.])

方法一:(推薦使用)

tf.is_tensor(a)

在這裏插入圖片描述
方法二:(不推薦使用)

isinstance(a,tf.Tensor)

1.2.2.6 類型轉換

1. numpy -> tensor
a = np.arange(5)
a

在這裏插入圖片描述

aa = tf.convert_to_tensor(a)
aa

在這裏插入圖片描述

2. 改變tensor的數據類型

在這裏插入圖片描述

tf.cast(aa,dtype=tf.float32)

在這裏插入圖片描述

1.2.2.7 tf.Variable

a = tf.range(5)
a

在這裏插入圖片描述

b = tf.Variable(a)
b

在這裏插入圖片描述

b.trainable

如下圖,可訓練的,能求導
在這裏插入圖片描述

isinstance(b,tf.Tensor)

如下圖,判斷錯誤,所以不推薦用isinstance判斷是否是tensor
在這裏插入圖片描述
推薦使用is_tensor進行判斷

tf.is_tensor(b)

在這裏插入圖片描述

isinstance(b,tf.Variable)

在這裏插入圖片描述
tensor-> numpy

b.numpy()

在這裏插入圖片描述

a = tf.ones([])
a.numpy()

在這裏插入圖片描述
對於標量,還有一種特殊是轉換方式,如下圖

int(a)

在這裏插入圖片描述

float(a)

在這裏插入圖片描述

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