第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在不使用 get_shape、size 和 shape 函數(shù)的情況下提取張量的第一維?

在不使用 get_shape、size 和 shape 函數(shù)的情況下提取張量的第一維?

收到一只叮咚 2021-06-04 13:50:08
我用 Keras 寫了一個(gè)損失函數(shù)。它有兩個(gè)參數(shù),y_true和y_pred。我的第一行代碼是:batch = y_pred.get_shape()[0]. 然后在我的batch變量中我有第一個(gè)維度y_pred,所以我循環(huán)range(batch)并寫下我寫的內(nèi)容。那沒(méi)關(guān)系。問(wèn)題是當(dāng)我編譯所有內(nèi)容時(shí),我收到一條錯(cuò)誤消息,告訴我批處理不是整數(shù),而是張量。然后,作為 Tensorflow 的初學(xué)者,我開(kāi)始思考如何從 中獲取一個(gè)整數(shù)batch,它應(yīng)該是一個(gè)整數(shù),但是一個(gè)張量。我試圖這樣做,sess.run(batch)但這根本沒(méi)有幫助。所以,我的問(wèn)題是如何從表示整數(shù)變量的張量中獲取整數(shù)。我想使用一些真正給我一個(gè)整數(shù)而不是張量的函數(shù)。請(qǐng)幫忙。這是我的代碼:def custom_loss(y_true, y_pred):    batch = y_pred.get_shape()[0]    list_ones = returnListOnes(batch)    tensor_ones = tf.convert_to_tensor(list_ones)    loss = 0    for i in range(batch):      for j in range(S):        for k in range(S):            lista = returnListOnesIndex(batch, [j,k,0])            lista_bx = returnListOnesIndex(batch, [j,k,1])            lista_by = returnListOnesIndex(batch, [j,k,2])            lista_bw = returnListOnesIndex(batch, [j,k,3])            lista_bh = returnListOnesIndex(batch, [j,k,4])            lista_to_tensor = tf.convert_to_tensor(lista)            lista_bx_to_tensor = tf.convert_to_tensor(lista_bx)            lista_by_to_tensor = tf.convert_to_tensor(lista_by)            lista_bw_to_tensor = tf.convert_to_tensor(lista_bw)            lista_bh_to_tensor = tf.convert_to_tensor(lista_bh)            element = tf.reduce_sum(tf.multiply(lista_to_tensor,y_pred))            element_true = tf.reduce_sum(tf.multiply(lista_to_tensor, y_true))            element_bx = tf.reduce_sum(tf.multiply(lista_bx_to_tensor, y_pred))            element_bx_true = tf.reduce_sum(tf.multiply(lista_bx_to_tensor, y_true))            element_by = tf.reduce_sum(tf.multiply(lista_by_to_tensor, y_pred))            element_by_true = tf.reduce_sum(tf.multiply(lista_by_to_tensor, y_true))            element_bw = tf.reduce_sum(tf.multiply(lista_bw_to_tensor, y_pred))            element_bw_true = tf.reduce_sum(tf.multiply(lista_bw_to_tensor, y_true))正如你所看到的,我想要batch變量是int這樣我可以循環(huán)并做一些事情。我也用過(guò)size,shape它也行不通。
查看完整描述

1 回答

?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

矢量化代碼肯定會(huì)更高效,我強(qiáng)烈建議您嘗試以不需要循環(huán)的方式編寫代碼。

但是,如果您無(wú)法這樣做,則可以求助于tf.map_fn.

從您的代碼中,我看不出在i您的循環(huán)中使用了什么地方。我猜這是一個(gè)錯(cuò)誤(可能batch應(yīng)該i在循環(huán)內(nèi))或我自己的失明 - 否則你可以將結(jié)果乘以批量大小......


查看完整回答
反對(duì) 回復(fù) 2021-06-09
  • 1 回答
  • 0 關(guān)注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)