濮阳杆衣贸易有限公司

主頁 > 知識庫 > TensorFlow2基本操作之合并分割與統(tǒng)計

TensorFlow2基本操作之合并分割與統(tǒng)計

熱門標簽:佛山防封外呼系統(tǒng)收費 南昌辦理400電話怎么安裝 徐州天音防封電銷卡 電話機器人適用業(yè)務 鄭州智能外呼系統(tǒng)運營商 湛江電銷防封卡 哈爾濱外呼系統(tǒng)代理商 獲客智能電銷機器人 不錯的400電話辦理

合并與分割

tf.concat

tf.concat可以幫助我們實現(xiàn)拼接操作.

格式:

tf.concat(
    values, axis, name='concat'
)

參數(shù):

  • values: 一個 tensor 或 tensor list
  • axis: 操作的維度
  • name: 數(shù)據(jù)名稱, 默認為 “concat”

例子:

part_1 = tf.zeros([5, 3])
print(part_1)

part_2 = tf.ones([5, 3])
print(part_2)

# 豎向拼接
result_1 = tf.concat([part_1, part_2], axis=0)
print(result_1)

# 橫向拼接
result_2 = tf.concat([part_1, part_2], axis=1)
print(result_2)

輸出結果:

tf.Tensor(
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]], shape=(5, 3), dtype=float32)
tf.Tensor(
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]], shape=(5, 3), dtype=float32)
tf.Tensor(
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]], shape=(10, 3), dtype=float32)
tf.Tensor(
[[0. 0. 0. 1. 1. 1.]
[0. 0. 0. 1. 1. 1.]
[0. 0. 0. 1. 1. 1.]
[0. 0. 0. 1. 1. 1.]
[0. 0. 0. 1. 1. 1.]], shape=(5, 6), dtype=float32)

tf.stack

rf.stack可以創(chuàng)建一個新的維度來合并兩個張量.

格式:

tf.stack(
    values, axis=0, name='stack'
)

參數(shù):

  • values: 一個 tensor list
  • axis: 操作的維度
  • name: 數(shù)據(jù)名稱, 默認為 “stack”

例子:

part_1 = tf.zeros([5, 3])
print(part_1)

part_2 = tf.ones([5, 3])
print(part_2)

# 頭拼接
result_1 = tf.stack([part_1, part_2], axis=0)
print(result_1)

# 尾拼接
result_2 = tf.stack([part_1, part_2], axis=2)
print(result_2)

輸出結果:

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

[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]], shape=(2, 5, 3), dtype=float32)
tf.Tensor(
[[[0. 1.]
[0. 1.]
[0. 1.]]

[[0. 1.]
[0. 1.]
[0. 1.]]

[[0. 1.]
[0. 1.]
[0. 1.]]

[[0. 1.]
[0. 1.]
[0. 1.]]

[[0. 1.]
[0. 1.]
[0. 1.]]], shape=(5, 3, 2), dtype=float32)

tf.unstack

tf.unstack是一個矩陣分解函數(shù).

格式:

# unstack
tf.unstack(
value, num=None, axis=0, name='unstack'
)

參數(shù):

  • values: 一個 tensor, 維度大于 0
  • num: 軸的長度
  • axis: 操作的維度
  • name: 數(shù)據(jù)名稱, 默認為 “unstack”

例子:

a = tf.stack([tf.zeros([5, 3]), tf.ones([5, 3])], axis=0)
print(a)

b = tf.unstack(a, axis=0)
print(b)

輸出結果:

tf.Tensor(
[[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]

[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]], shape=(2, 5, 3), dtype=float32)
[tf.Tensor: shape=(5, 3), dtype=float32, numpy=
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]], dtype=float32)>, tf.Tensor: shape=(5, 3), dtype=float32, numpy=
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]], dtype=float32)>]

tf.split

tf.split()可以把一個張量劃分為幾個子張量.

格式:

tf.split(
    value, num_or_size_splits, axis=0, num=None, name='split'
)

參數(shù):

  • value: 待切分的張量
  • num_or_size_splits: 切成幾份
  • axis: 操作的維度
  • num: num_or_size_splits 不能實現(xiàn)的情況下使用
  • name: 數(shù)據(jù)名稱, 默認為 “split”

例子:

# split
a = tf.stack([tf.zeros([5, 3]), tf.ones([5, 3])], axis=0)
print(a)

b = tf.split(a, 2)
print(b)

輸出結果:

tf.Tensor(
[[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]

[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]], shape=(2, 5, 3), dtype=float32)
[tf.Tensor: shape=(1, 5, 3), dtype=float32, numpy=
array([[[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]]], dtype=float32)>, tf.Tensor: shape=(1, 5, 3), dtype=float32, numpy=
array([[[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]]], dtype=float32)>]

數(shù)據(jù)統(tǒng)計

tf.norm

tf.norm可以幫助我們計算向量, 矩陣, 張量的范數(shù).

格式:

tf.norm(
    tensor, ord='euclidean', axis=None, keepdims=None, name=None
)

參數(shù):

  • tensor: 輸入的張量
  • ord: 范數(shù)的順序
  • axis: 操作的維度
  • keep_dims: 如果為 True, 則 axis 中指定的軸將保持為大小 1
  • name: 數(shù)據(jù)名稱

例子:

a = tf.fill([2, 2], 2.0)
print(a)

# sqrt(2^2 * 4) = sqrt(16) = 4
b = tf.norm(a)
print(b)

# [2 + 2, 2 + 2] = [4, 4]
c = tf.norm(a, ord=1, axis= 0)
print(c)

# [sqrt(2^2 + 2^2), sqrt(2^2 + 2^2)] = [sqrt(8), sqrt(8)]
d = tf.norm(a, ord=2, axis= 0)
print(d)

輸出結果:

tf.Tensor(
[[2. 2.]
[2. 2.]], shape=(2, 2), dtype=float32)
tf.Tensor(4.0, shape=(), dtype=float32)
tf.Tensor([4. 4.], shape=(2,), dtype=float32)
tf.Tensor([2.828427 2.828427], shape=(2,), dtype=float32)

reduce_min/max/mean

計算一個張量各個維度上元素的最小值 / 最大值 / 平均值.

格式:

tf.math.reduce_min / reduce_max / reduce_mean(
    input_tensor, axis=None, keepdims=False, name=None
)

參數(shù):

  • input_tensor: 傳入的張量
  • axis: 維度, 默認計算所有維度
  • keepdims: 如果為真保留維度, 默認為 False
  • name: 數(shù)據(jù)名稱

例子:

a = tf.reshape(tf.range(9), [3, 3])
print(a)

min = tf.reduce_min(a)
print(min)

max = tf.reduce_max(a)
print(max)

輸出結果:

tf.Tensor(
[[0 1 2]
[3 4 5]
[6 7 8]], shape=(3, 3), dtype=int32)
tf.Tensor(0, shape=(), dtype=int32)
tf.Tensor(8, shape=(), dtype=int32)

argmax / argmin

tf.argmax/tf.argmin可以幫我們找到最大 / 最小值所在的索引 (index).

格式:

tf.math.argmax(
    input, axis=None, output_type=tf.dtypes.int64, name=None
)

參數(shù):

  • input: 輸入
  • axis: 操作的維度
  • output_type: 輸出數(shù)據(jù)類型, 默認為 int64
  • name: 數(shù)據(jù)名稱

例子:

# argmax / argmin
a = tf.reshape(tf.range(9), [3, 3])
print(a)

max = tf.argmax(a)
print(max)

min = tf.argmin(a)
print(min)

輸出結果:

tf.Tensor(
[[0 1 2]
[3 4 5]
[6 7 8]], shape=(3, 3), dtype=int32)
tf.Tensor([2 2 2], shape=(3,), dtype=int64)
tf.Tensor([0 0 0], shape=(3,), dtype=int64)

tf.equal

tf.equal可以幫助我們判斷兩個張量是否相等. 返回 True / False.

格式:

tf.math.equal(
    x, y, name=None
)

例子:

a = tf.zeros(5, dtype=tf.float32)
print(a)

b = tf.range(5, dtype=tf.float32)
print(b)

print(tf.equal(a, b))

輸出結果:

tf.Tensor([0. 0. 0. 0. 0.], shape=(5,), dtype=float32)
tf.Tensor([0. 1. 2. 3. 4.], shape=(5,), dtype=float32)
tf.Tensor([ True False False False False], shape=(5,), dtype=bool)

tf.unique

tf.unique可以幫我們找出張量中不重復的值

格式:

tf.unique(
    x, out_idx=tf.dtypes.int32, name=None
)

參數(shù):

  • input: 輸入
  • output_type: 輸出數(shù)據(jù)類型, 默認為 int32
  • name: 數(shù)據(jù)名稱

例子:

a = tf.range(5)
print(tf.unique(a))

b = tf.constant([4, 2, 2, 4, 3])
print(tf.unique(b))

輸出結果:

Unique(y=tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 1, 2, 3, 4])>, idx=tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 1, 2, 3, 4])>)
Unique(y=tf.Tensor: shape=(3,), dtype=int32, numpy=array([4, 2, 3])>, idx=tf.Tensor: shape=(5,), dtype=int32, numpy=array([0, 1, 1, 0, 2])>)

到此這篇關于一小時學會TensorFlow2基本操作之合并分割與統(tǒng)計的文章就介紹到這了,更多相關TensorFlow2合并分割與統(tǒng)計內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 手把手教你使用TensorFlow2實現(xiàn)RNN
  • tensorflow2.0實現(xiàn)復雜神經(jīng)網(wǎng)絡(多輸入多輸出nn,Resnet)
  • windows系統(tǒng)Tensorflow2.x簡單安裝記錄(圖文)
  • 詳解TensorFlow2實現(xiàn)前向傳播
  • Python強化練習之Tensorflow2 opp算法實現(xiàn)月球登陸器

標簽:安康 懷化 廣西 吉安 蘭州 紹興 蕪湖 呂梁

巨人網(wǎng)絡通訊聲明:本文標題《TensorFlow2基本操作之合并分割與統(tǒng)計》,本文關鍵詞  TensorFlow2,基本操作,之,合并,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《TensorFlow2基本操作之合并分割與統(tǒng)計》相關的同類信息!
  • 本頁收集關于TensorFlow2基本操作之合并分割與統(tǒng)計的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    乌兰县| 剑川县| 齐齐哈尔市| 琼中| 扶风县| 宁夏| 铜山县| 漠河县| 东港市| 东丽区| 佛冈县| 隆德县| 曲麻莱县| 呼伦贝尔市| 平潭县| 海兴县| 宝鸡市| 治多县| 松滋市| 疏勒县| 东乡县| 莒南县| 鄂托克旗| 定边县| 宣汉县| 宁乡县| 蛟河市| 南昌县| 马龙县| 长宁县| 赤城县| 阿克陶县| 赣州市| 探索| 嘉禾县| 凉城县| 宝丰县| 屏东市| 平阳县| 洪江市| 广南县|