如何檢視Theano的TensorSharedVariabl

2021-03-19 22:53:53 字數 4952 閱讀 8373

1樓:匿名使用者

在theano除錯過程中,tensorsharedvariable型別變數可以用get_value方法和set_value方法獲取和設定其值,至於tensorvariable型別變數是沒有值的,無法直接獲取,只能通過提前賦值或者列印的方法來看。

對於tensorsharedvariable,在除錯過程中使用get_value就可以檢視,例如我們可以檢視mnist資料集中訓練集的尺寸:

同理還可以檢視交叉驗證集以及測試集的shape。但是如果同樣的方法對train_set_y(訓練集標號)就不行,因為它是tensorvariable,沒有共享,即儲存在gpu內寸中。

那在除錯過程中,要如何檢視tensorvariable值呢?可以通過tag.test_value,即定義theano變數x時,賦值給x.

tag.test_value。如下**:

[python] view plain copy

from theano import config

from theano import tensor as t

config.***pute_test_value = 'raise'

import numpy as np

import theano

x = t.vector()

x.tag.test_value = np.array([1,2],dtype=theano.config.floatx)

x.tag.test_valuey = t.vector()

y = x+x

print y.tag.test_value

在除錯過程中,可以通過tag.test_value來檢視theano變數

theano中怎麼檢視tensorvariable的值,在debug時如何跟蹤這樣的變數

2樓:

瑾瑜 (出自成語――握瑾懷瑜,比喻擁有美好的品德)

python theano中的shared variable是指什麼意思

3樓:匿名使用者

shared variable是一種符號變數(symbolic variable),但是這個symbolic variable又擁有自己的值。

假設你定義了乙個shared variable叫做a:

import theano

a = theano.shared(2, "a")

那麼a就是乙個symbolic variable,目前的初始值是2

現在你定義兩個theano.function,乙個實現加二的功能,乙個實現平方的功能:

i = theano.tensor.scalar("i", dtype=theano.config.floatx)

add_two_func = theano.function(inputs=[i], outputs=[i+a])

sqr_func = theano.function(inputs=[i], outputs=[i**a])

i作為乙個輸入變數,通過theano.tensor.scalar來定義。i也是乙個symbolic variable,但是它在定義的時候沒有乙個固定的值。

現在開始實際呼叫加二的函式和平方的函式:

>>> add_two_func(3)

[array(5.0)]

>>> sqr_func(4)

[array(16.0)]

i在呼叫函式的時候,才被賦值。在上例中,i第一次被賦值了3,第二次被賦值了4。而a作為symbolic variable,卻在定義的時候就已經擁有了值:2 。

a之所以叫shared variable是因為a的賦值在不同的函式中都是一致的,即a是被shared的。在上例中a的值在不同的函式中都為2。

請問python theano中的shared variable是指什麼意思?

4樓:匿名使用者

shared variable是一種符號變數(symbolic variable),但是這個symbolic variable又擁有自己的值。

假設你定義了乙個shared variable叫做a:

import theano

a = theano.shared(2, "a")

那麼a就是乙個symbolic variable,目前的初始值是2

現在你定義兩個theano.function,乙個實現加二的功能,乙個實現平方的功能:

i = theano.tensor.scalar("i", dtype=theano.config.floatx)

add_two_func = theano.function(inputs=[i], outputs=[i+a])

sqr_func = theano.function(inputs=[i], outputs=[i**a])

i作為乙個輸入變數,通過theano.tensor.scalar來定義。i也是乙個symbolic variable,但是它在定義的時候沒有乙個固定的值。

現在開始實際呼叫加二的函式和平方的函式:

>>> add_two_func(3)

[array(5.0)]

>>> sqr_func(4)

[array(16.0)]

i在呼叫函式的時候,才被賦值。在上例中,i第一次被賦值了3,第二次被賦值了4。而a作為symbolic variable,卻在定義的時候就已經擁有了值:2 。

a之所以叫shared variable是因為a的賦值在不同的函式中都是一致的,即a是被shared的。在上例中a的值在不同的函式中都為2。

對tensor變數切片等操作怎麼進行

5樓:草原上之狼

可以直接取tensor變數的一部分,但是不能給tensor變數賦值

>>> import numpy as np

>>> import theano

>>> from theano.tensor.basic import as_tensor_variable

>>> b=np.random.rand(4,2)

>>> m=as_tensor_variable(b)

>>> m[0][0]

subtensor.0

>>> n=m[0][0] #取m的第乙個值,n是subtensor

>>> n

subtensor.0

>>> n.eval()

array(0.3710058805503049)

>>> m.eval()

array([[ 0.37100588, 0.95565751],

[ 0.86516759, 0.94976681],

[ 0.09564244, 0.65019287],

[ 0.59892358, 0.4180284 ]])

>>> type(m)

>>> m[0][0]=0

traceback (most recent call last):

file "", line 1, in

typeerror: 'tensorvariable' object does not support item assignment

>>> m[0][0].eval()=0

file "", line 1

syntaxerror: can't assign to function call

>>> n =m[1:3] #取m的第23行

>>> n.eval()

array([[ 0.86516759, 0.94976681],

[ 0.09564244, 0.65019287]])

theano怎麼檢視float64

6樓:匿名使用者

theano.tensor.dot(x,y) x,y如果是向量,自動會對y進行轉置 如果是矩陣,要注意對齊

theano程式中怎麼看numpy矩陣的shape

7樓:匿名使用者

theano.tensor.dot(x,y)

x,y如果是向量,自動會對y進行轉置

如果是矩陣,要注意對齊。

一般情況下,乙個樣本應該看做1行n列的向量。

tensor.sub(x,y)

碰到乙個問題,如果x是n行的,y是1行的。

要對x中的每行都減去乙個y。theano中不知道如何寫方便。

好像要用迴圈。就是scan來做。不過scan是對實際的數進行操作的。不是對模型進行定義。而這裡是要對模型定義這樣乙個操作。

用的是符號變數。和theano函式。

試了下直接用sub(x,y)就行了。定義的時候想定義為矩陣,y定義為向量,如果y也定義為矩陣,就無法自動處理,對齊的時候通不過。

numpy.prod(x) 返回x中各元素的乘積。

theano.tensor.n***.conv.conv2d 。巢狀了這麼多層,theano的結構不知道是啥樣的。

這個函式就是2d卷積。具體的使用可以看**n的例子。

這個函式有個image_shape引數,

image_shape (tuple of len 4 of int or contant variable) – (batch size, stack size, nb row, nb col) optional, used for optimization.

這裡的stack size引數是幹什麼用的呢?

tensorflow 除錯時,怎麼看下面的引數的裡面內容

8樓:驚慌夜

程式設計師為什麼要學深度學習? 深度學習本身是乙個非常龐大的知識體系。本文更多想從程式設計師的視角出發,讓大家觀察一下深度學習對程式設計師意味著什麼,以及我們如何利用這樣乙個高速發展的學科,來幫助程式設計師提公升軟體開發的能力。

如何實時檢視linu下的日誌,如何實時檢視linux下的日誌

在linux系統中,有三個主要的日 志子系統 連線時間日誌 由多個程式執行,把紀錄寫入到 var log wtmp和 var run utmp,login等程式更新wtmp和utmp檔案,使系統管理員能夠跟蹤誰在何時登入到系統。程序統計 由系統核心執行。當乙個程序終止時,為每個程序往程序統計檔案 p...

如何檢視網域名稱的NS記錄,如何檢視網域名稱的A記錄 MX記錄 CNAME記錄和NS記錄

內容來自使用者 天成資訊 網域名稱ns記錄是什麼?網域名稱ns記錄應該也算比較常用,比如你在新網買了網域名稱,但你想使用dnspod來解析網域名稱,那么你就需要把dns伺服器換成dnspod的,同時新增網域名稱ns記錄才可以使用。一 什么是網域名稱ns記錄 ns nameserver 記錄是網域名稱...

如何檢視自己購買的基金份額,如何檢視自己的基金申購情況?

一 用身份證登陸登陸你買的 的 公司 密碼是你的身份證後6位數字。登陸進去後,就可以查到你申購到的 份額,每日單位淨值,每日帳面資產等資訊。有的 公司在帳戶初始頁面就可以看到。申購成功後,一般會在第二個交易日查詢到你申購的 份額。二 在 購買的渠道查詢。如果是在銀行購買的,可以帶身份證銀行卡去銀行櫃...