摘要:隨機數張量提供了一些函數,去幫助我們構建隨機數張量。該值表示正態分布的均值。一個維的,或者一個數據類型是的值,該值表示正態分布的標準偏差。解釋這個函數返回一個隨機數序列,數組里面的值按照均勻分布,數據范圍是。
作者:chen_h
微信號 & QQ:862251340
微信公眾號:coderpai
簡書地址:https://www.jianshu.com/p/d05...
計劃現將 tensorflow 中的 Python API 做一個學習,這樣方便以后的學習。該章介紹有關常量張量,序列操作,隨機數張量的API
原文鏈接
Tensorflow提供了很多的操作,去幫助你構建常量。
tf.zeros(shape, dtype = tf.float32, name = None)
解釋:這個函數返回一個全是零的張量,數據維度是 shape,數據類型是 dtype。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.zeros(shape = [2, 3], dtype = tf.int32, name = "input_data") print sess.run(data)
輸入參數:
shape: 一個整型的數組,或者一個一維的Tensor,數據類型是:int32。
dtype: 輸出結果Tensor的數據類型。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,里面的所以數據都是0。
tf.zeros_like(tensor, dtype = None, name = None)
解釋:這個函數返回一個全是零的張量,數據維度是和Tensor一樣,數據類型是默認是和Tensor一樣,但是我們也可以自己指定。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.zeros(shape = [2, 3], dtype = tf.int32, name = "input_data") d_1 = tf.zeros_like(data) d_2 = tf.zeros_like(data, tf.float32) print sess.run(d_1) print sess.run(d_2)
輸入參數:
tensor: 一個Tensor。
dtype: 輸出結果Tensor的數據類型,必須是 float32,float64,int8,int16,int32,int64,uint8或者complex64。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,里面的所以數據都是0。
tf.ones(shape, dtype = tf.float32, name = None)
解釋:這個函數返回一個全是1的張量,數據維度是shape,數據類型是dtype。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.ones(shape = [2, 3], dtype = tf.int32, name = "input_data") print sess.run(data)
輸入參數:
shape: 一個整型的數組,或者一個一維的Tensor,數據類型是 int32。
dtype: 輸出結果Tensor的數據類型。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,里面的所以數據都是1。
tf.ones_like(tensor, dtype = None, name = None)
解釋:這個函數返回一個全是一的張量,數據維度是和Tensor一樣,數據類型是默認是和Tensor一樣,但是我們也可以自己指定。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.zeros(shape = [2, 3], dtype = tf.int32, name = "input_data") d_1 = tf.ones_like(data) d_2 = tf.ones_like(data, tf.float32) print sess.run(d_1) print sess.run(d_2)
輸入參數:
tensor: 一個Tensor。
dtype: 輸出結果Tensor的數據類型,必須是 float32,float64,int8,int16,int32,int64,uint8或者complex64。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,里面的所以數據都是1。
tf.fill(dims, value, name = None)
解釋:這個函數返回一個Tensor,數據維度是dims,填充的數據都是value。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.fill([2,3], 9) print sess.run(data)
輸入參數:
dim: 一個Tensor,數據類型是int32,表示輸出數據的維度。
value: 一個Tensor,數據維度是0維,即是一個常量(標量),輸出數據所以填充的都是該值。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,數據類型和value相同。
tf.constant(value, dtype = None, shape = None, name = "Const")
解釋:這個函數返回一個常量Tensor。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.constant([1, 2, 3]) print sess.run(data) data = tf.constant(-1.0, shape = [2, 3]) print sess.run(data) data = tf.constant(2.0, dtype = tf.float32, shape = [2, 3]) print sess.run(data)
輸入參數:
value: 一個常量或者是一個數組,該數據類型就是輸出的數據類型。
dtype: 輸出數據的類型。
shape:(可選)輸出數據的維度。
name:(可選)為這個操作取一個名字。
輸出參數:
一個常量Tensor。
Tensorflow提供了一些函數,去幫助我們構建序列。
tf.linspace(start, stop, num, name = None)
解釋:這個函數返回一個序列數組,數組的第一個元素是start,如果num>1,那么序列的最后一個元素就是 stop - start / num - 1。也就是說,最后一個元素肯定是stop。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.linspace(10.0, 15.0, 10) print sess.run(data)
輸入參數:
start: 一個Tensor。數據類型必須是float32或者float64。該值是輸出序列的第一個元素。
stop: 一個Tensor。數據類型必須和start相同。該值是輸出序列的最后一個元素。
num: 一個Tensor,數據類型是int32。該值確定輸出序列的個數
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,數據類型和start相同,數據維度是一維。
tf.range(start, limit, delta = 1, name = "range")
解釋:這個函數返回一個序列數組,數組的第一個元素是start,之后的每一個元素都在前一個元素的基礎上,加上delta,直到limit,但是不包括limit。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.range(3, 15, 3) print sess.run(data)
輸入參數:
start: 一個0維的Tensor,即一個標量。數據類型必須是int32。該值是輸出序列的第一個元素。
limit: 一個0維的Tensor,即一個標量。數據類型必須是int32。該值是輸出序列的最后限制,但不包含該值。
delta: 一個0維的Tensor,即一個標量。數據類型必須是int32。(可選)該值默認是1,也就是說輸出數據從start開始。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,數據類型int32,數據維度是一維。
Tensorflow提供了一些函數,去幫助我們構建隨機數張量。
tf.random_normal(shape, mean = 0.0, stddev = 1.0, dtype = tf.float32, seed = None, name = None)
解釋:這個函數返回一個隨機數序列,數組里面的值按照正態分布。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.random_normal([2, 3]) print sess.run(data)
輸入參數:
shape: 一個一維的Tensor,或者是一個python數組。該值是確定輸出序列的數據維度。
mean: 一個0維的Tensor,或者一個數據類型是dtype的python值。該值表示正態分布的均值。
stddev: 一個0維的Tensor,或者一個數據類型是dtype的python值,該值表示正態分布的標準偏差。
dtype: 輸出數據的數據類型。
seed: 一個python整型,為分布產生一個隨機種子,具體可以參見set_random_seed函數。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,數據類型是dtype,數據維度是shape,里面的值符合正態分布。
tf.truncated_normal(shape, mean = 0.0, stddev = 1.0, dtype = tf.float32, seed = None, name = None)
解釋:這個函數返回一個隨機數序列,數組里面的值按照正態分布,但和random_normal函數不同的是,該值返回的是一個截斷的正態分布類型。也就是說,產生出來的值范圍都是在 [mean - 2 * standard_deviations, mean + 2 * standard_deviations]內,下圖可以告訴你這個具體范圍在哪。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.truncated_normal([2, 3]) print sess.run(data)
輸入參數:
shape: 一個一維的Tensor,或者是一個python數組。該值是確定輸出序列的數據維度。
mean: 一個0維的Tensor,或者一個數據類型是dtype的python值。該值表示正態分布的均值。
stddev: 一個0維的Tensor,或者一個數據類型是dtype的python值,該值表示正態分布的標準偏差。
dtype: 輸出數據的數據類型。
seed: 一個python整型,為分布產生一個隨機種子,具體可以參見set_random_seed函數。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,數據類型是dtype,數據維度是shape,里面的值是一個截斷的正態分布。
tf.random_uniform(shape, minval = 0.0, maxval = 1.0, dtype = tf.float32, seed = None, name = None)
解釋:這個函數返回一個隨機數序列,數組里面的值按照均勻分布,數據范圍是 [minval, maxval)。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.random_uniform([2, 3]) print sess.run(data)
輸入參數:
shape: 一個一維的Tensor,或者是一個python數組。該值是確定輸出序列的數據維度。
minval: 一個0維的Tensor,或者一個數據類型是dtype的python值。該值表示均勻分布的最小值。
maxval: 一個0維的Tensor,或者一個數據類型是dtype的python值,該值表示均勻分布的最大值,但是不能取到該值。
dtype: 輸出數據的數據類型。
seed: 一個python整型,為分布產生一個隨機種子,具體可以參見set_random_seed函數。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,數據類型是dtype,數據維度是shape,里面的值符合均勻分布。
tf.random_shuffle(value, seed = None, name = None)
解釋:這個函數返回一個隨機數序列,將value中的數據打亂輸出。
使用例子:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np sess = tf.Session() data = tf.constant([[1, 2], [3, 4], [5, 6]]) shuff_data = tf.random_shuffle(data) print sess.run(data) print sess.run(shuff_data) data = tf.constant([1, 2, 3, 4, 5, 6]) shuff_data = tf.random_shuffle(data) print sess.run(data) print sess.run(shuff_data)
輸入參數:
value: 一個Tensor,需要打亂的數據。
seed: 一個python整型,為分布產生一個隨機種子,具體可以參見set_random_seed函數。
name:(可選)為這個操作取一個名字。
輸出參數:
一個Tensor,數據類型和數據維度都和value相同。
tf.set_random_seed(seed)
解釋:這個函數是設置圖層面的隨機種子。隨機種子分為兩類,一類是圖層面的隨機種子,另一類是操作層面的隨機種子。具體區別如下:
第一種,如果圖層面和操作層面的隨機種子都沒有設置,那么隨機種子將在每個操作中被更新。例子如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np a = tf.random_uniform([1]) b = tf.random_normal([1]) print "Session 1" with tf.Session() as sess1: print sess1.run(a) # generates "A1" print sess1.run(a) # generates "A2" print sess1.run(b) # generates "B1" print sess1.run(b) # generates "B2" print "Session 2" with tf.Session() as sess2: print sess2.run(a) # generates "A3" print sess2.run(a) # generates "A4" print sess2.run(b) # generates "B3" print sess2.run(b) # generates "B4"
第二種,如果圖層面的隨機種子被設置了,但是操作層面的隨機種子沒有被設置。那么,系統將把圖層面的隨機種子設置成操作層面的隨機種子,以至于操作層面的隨機種子將被確定下來。
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np tf.set_random_seed(1234) a = tf.random_uniform([1]) b = tf.random_normal([1]) # Repeatedly running this block with the same graph will generate different # sequences of "a" and "b". print "Session 1" with tf.Session() as sess1: print sess1.run(a) # generates "A1" print sess1.run(a) # generates "A2" print sess1.run(b) # generates "B1" print sess1.run(b) # generates "B2" print "Session 2" with tf.Session() as sess2: print sess2.run(a) # generates "A1" print sess2.run(a) # generates "A2" print sess2.run(b) # generates "B1" print sess2.run(b) # generates "B2"
第三種,如果圖層面的隨機種子沒有被設置,但是操作層面的隨機種子被設置了,那么被設置隨機種子的操作層將有確定的唯一種子,其他操作層不具有唯一種子。
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np a = tf.random_uniform([1], seed=1) b = tf.random_normal([1]) # Repeatedly running this block with the same graph will generate the same # sequence of values for "a", but different sequences of values for "b". print "Session 1" with tf.Session() as sess1: print sess1.run(a) # generates "A1" print sess1.run(a) # generates "A2" print sess1.run(b) # generates "B1" print sess1.run(b) # generates "B2" print "Session 2" with tf.Session() as sess2: print sess2.run(a) # generates "A1" print sess2.run(a) # generates "A2" print sess2.run(b) # generates "B3" print sess2.run(b) # generates "B4"
第四種,如果圖層面和操作層面都設置了隨機種子,那么這兩個隨機種子都將被使用,但是最后起作用的隨機種子是唯一的,即操作的隨機輸出值是確定的。
#!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np tf.set_random_seed(1234) a = tf.random_uniform([1], seed = 1) b = tf.random_normal([1], seed = 2) # Repeatedly running this block with the same graph will generate the same # sequence of values for "a", but different sequences of values for "b". print "Session 1" with tf.Session() as sess1: print sess1.run(a) # generates "A1" print sess1.run(a) # generates "A2" print sess1.run(b) # generates "B1" print sess1.run(b) # generates "B2" print "Session 2" with tf.Session() as sess2: print sess2.run(a) # generates "A1" print sess2.run(a) # generates "A2" print sess2.run(b) # generates "B1" print sess2.run(b) # generates "B2"
輸入參數:
seed: 一個整數類型。
作者:chen_h
微信號 & QQ:862251340
簡書地址:https://www.jianshu.com/p/d05...
CoderPai 是一個專注于算法實戰的平臺,從基礎的算法到人工智能算法都有設計。如果你對算法實戰感興趣,請快快關注我們吧。加入AI實戰微信群,AI實戰QQ群,ACM算法微信群,ACM算法QQ群。長按或者掃描如下二維碼,關注 “CoderPai” 微信號(coderpai)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41234.html
摘要:解釋這個函數的作用是對的維度進行重新組合。其中,表示要解壓出來的的個數。如果,無法得到,那么系統將拋出異常。異常如果沒有被正確指定,那么將拋出異常。向量中的值必須滿足,并且其長度必須是。對于每個切片的輸出,我們將第維度的前的數據進行翻轉。 作者:chen_h微信號 & QQ:862251340微信公眾號:coderpai簡書地址:https://www.jianshu.com/p/00...
摘要:數據維度是一維,表示輸出密集張量的維度。解釋這個函數的作用是將稀疏張量的坐標轉換成密集張量中的布爾坐標。一個布爾類型的向量,向量長度是,并且其中包含個值。一個布爾類型的向量,數據長度是,如果該行填充了,那么該位置的布爾值為。 作者:chen_h微信號 & QQ:862251340微信公眾號:coderpai簡書地址:https://www.jianshu.com/p/c23... 計...
摘要:輸出數據的第維將根據指定。輸入數據必須是一個二維的矩陣,經過轉置或者不轉置,內部維度必須相匹配。默認情況下,該標記都是被設置為。解釋這個函數的作用是將兩個 作者:chen_h微信號 & QQ:862251340微信公眾號:coderpai簡書地址:https://www.jianshu.com/p/ce4... 計劃現將 tensorflow 中的 Python API 做一個學習,...
摘要:使用例子輸入參數一個,數據類型必須是以下之一,,,,,,。解釋這個函數的作用是沿著指定的維度,分割張量中的值,并且返回最大值。 作者:chen_h微信號 & QQ:862251340微信公眾號:coderpai簡書地址:https://www.jianshu.com/p/4da... 計劃現將 tensorflow 中的 Python API 做一個學習,這樣方便以后的學習。原文鏈接...
摘要:表示元素是否放電的概率。更加具體的表示細節為注意,必須有。數據維度是四維。在大部分處理過程中,卷積核的水平移動步數和垂直移動步數是相同的,即。 作者:chen_h微信號 & QQ:862251340微信公眾號:coderpai簡書地址:https://www.jianshu.com/p/e3a... 計劃現將 tensorflow 中的 Python API 做一個學習,這樣方便以后...
閱讀 1154·2023-04-25 17:28
閱讀 3531·2021-10-14 09:43
閱讀 3953·2021-10-09 10:02
閱讀 1941·2019-08-30 14:04
閱讀 3127·2019-08-30 13:09
閱讀 3268·2019-08-30 12:53
閱讀 2895·2019-08-29 17:11
閱讀 1821·2019-08-29 16:58