国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 淺談tensorflow使用張量時的一些注意點tf.concat,tf.reshape,tf.stack

淺談tensorflow使用張量時的一些注意點tf.concat,tf.reshape,tf.stack

2020-06-24 09:43風之清揚 Python

這篇文章主要介紹了淺談tensorflow使用張量時的一些注意點tf.concat,tf.reshape,tf.stack,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

有一段時間沒用tensorflow了,現在跑實驗還是存在一些坑了,主要是關于張量計算的問題。tensorflow升級1.0版本后與以前的版本并不兼容,可能出現各種奇奇怪怪的問題。

1 tf.concat函數

tensorflow1.0以前函數用法:tf.concat(concat_dim, values, name='concat'),第一個參數為連接的維度,可以將幾個向量按指定維度連接起來。

如:

?
1
2
3
4
5
6
t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
#按照第0維連接
tf.concat(0, [t1, t2]) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
#按照第1維連接
tf.concat(1, [t1, t2]) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]

tf.concat的作用主要是將向量按指定維連起來,其余維度不變;而1.0版本以后,函數的用法變成:

?
1
2
3
4
5
6
t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
#按照第0維連接
tf.concat( [t1, t2],0) ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
#按照第1維連接
tf.concat([t1, t2],1) ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]

位置變了,需要注意。

2 tf.stack函數

用法:stack(values, axis=0, name=”stack”):

“”“Stacks a list of rank-R tensors into one rank-(R+1) tensor.

?
1
2
3
4
5
6
x = tf.constant([1, 4])
y = tf.constant([2, 5])
z = tf.constant([3, 6])
tf.stack([x,y,z]) ==> [[1,4],[2,5],[3,6]]
tf.stack([x,y,z],axis=0) ==> [[1,4],[2,5],[3,6]]
tf.stack([x,y,z],axis=1) ==> [[1, 2, 3], [4, 5, 6]]

tf.stack將一組R維張量變為R+1維張量。注意:tf.pack已經變成了tf.stack

3.tf.reshape

用法:reshape(tensor, shape, name=None):主要通過改變張量形狀,可以從高維變低維,也可以從低維變高維;

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
a = tf.Variable(initial_value=[[1,2,3],[4,5,6]]) ==> shape:[2,3]
b = tf.Variable(initial_value=[[[1,2,3],[4,5,6]],[[7,8,9],[1,0,2]]]) ==> shape:[2,2,3]
 
a_1 = tf.reshape(a,[2,1,1,3]) ==> [[[[1,2,3]]],[[[4,5,6]]]]
a_2 = tf.reshape(a,[2,1,3]) ==> [[[1,2,3]],[[4,5,6]]]
b_1 = tf.reshape(b,[2,2,1,3]) ==> [[[[1,2,3]],[[4,5,6]]],[[[7,8,9]],[[1,0,2]]]]
 
new_1 = tf.concat([b_1,a_1],1)
new_2 = tf.reshape(tf.concat([b,a_2],1),[2,3,1,3])
"""
new_1:
[[[[1 2 3]]
 
 [[4 5 6]]
 
 [[1 2 3]]]
 
 
 [[[7 8 9]]
 
 [[1 0 2]]
 
 [[4 5 6]]]]
new_2;
[[[[1 2 3]]
 
 [[4 5 6]]
 
 [[1 2 3]]]
 
 
 [[[7 8 9]]
 
 [[1 0 2]]
 
 [[4 5 6]]]]

補充知識:tensorflow中的reshape(tensor,[1,-1])和reshape(tensor,[-1,1])

和python 中的reshape用法應該一樣

?
1
2
3
4
5
6
import tensorflow as tf
a = [[1,2],[3,4],[5,6]]
tf.reshape(a,[-1,1])
Out[13]: <tf.Tensor 'Reshape_4:0' shape=(6, 1) dtype=int32>
tf.reshape(tf.reshape(a,[-1,1]),[1,-1])
Out[14]: <tf.Tensor 'Reshape_6:0' shape=(1, 6) dtype=int32>

tf.reshape(tensor,[-1,1])將張量變為一維列向量

tf.reshape(tensor,[1,-1])將張量變為一維行向量

以上這篇淺談tensorflow使用張量時的一些注意點tf.concat,tf.reshape,tf.stack就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/a18852867035/article/details/79048684

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人综合网站 | 中文字幕免费在线观看视频 | 亚洲精品一区二区三区在线观看 | av中文字幕在线观看 | 日本在线观看一区 | 色日韩| 免费成人高清在线视频 | 中文字幕一区二区三区不卡 | 伊人激情 | 久久大陆 | 国产一区二区免费 | 香蕉久久夜色精品国产使用方法 | 日韩一区在线观看视频 | 久久91精品 | 免费一级在线视频 | 久久99精品国产99久久6尤 | 欧美国产综合 | 亚洲免费在线视频 | 国产精品久久久久久久久久三级 | 午夜国产影院 | 亚洲色图p| 亚洲精品日韩激情在线电影 | 日韩视频精品在线观看 | 国产一区二区三区欧美 | 久久久中文字幕 | 亚洲免费精品 | 亚洲国产精品久久久久婷婷老年 | 午夜激情视频在线观看 | 视频一区在线观看 | 中文字幕亚洲一区 | av免费的| 欧美日韩免费视频 | 精品久久久一 | 亚洲精品欧美一区二区三区 | 国产精品久久久久久久久久久新郎 | 日本久久精品一区 | 91网站在线看 | 久久一二三四 | 精品国产一区二区国模嫣然 | 成人欧美一区二区三区视频xxx | 欧美一级免费看 |