五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

torcy7中的THTenser_(random)(a ,b)是怎么回事

2023-07-05 10:20 作者:老師明明可以靠顏值  | 我要投稿

pytorch是非常流行的人工智能訓(xùn)練框架。它的起點是C寫的軟件包torch.

我找到了一份torch的源碼:torch7.

在嘗試運行它的過程中,發(fā)現(xiàn)了函數(shù)的如下定義方式:

產(chǎn)生隨機數(shù)的函數(shù),一般來說我們這樣定義:

注意到,函數(shù)必須只能有一個小括號().這是C編譯器要求的。不這樣就會語法錯誤。

問題來了。

為什么這里可以這樣寫呢?難道C語言允許寫兩個括號了?

其實不是的,這里只是使用了宏定義#define

在源碼中,對THTensor_(NAME)使用了如下宏定義:

然后又對TH_CONCAT_4進(jìn)行了如下宏定義:

然后又對TH_CONCAT_4_EXPAND進(jìn)行了如下宏定義:

而x ## y ## z ## w的意思是生成形如x_y_z_x這樣的字符串。

連起來就是:

所以,ThTensor_(random)(THTensor *self, THGenerator * _generator);實際上定義了這樣一個函數(shù):

THRealTensor_random(THTensor *self,THGenerator *_generator)

那么為什么要使用宏這樣定義呢?這不是增加了代碼閱讀難度么?

因為作者想隨時批量的修改函數(shù)名字,但又不想逐個去修改,不僅慢,還容易出錯。

這樣宏定義后,只用修改一處,就能達(dá)到修改所有地方。

torcy7中的THTenser_(random)(a ,b)是怎么回事的評論 (共 條)

分享到微博請遵守國家法律
黄骅市| 华坪县| 辉县市| 新化县| 年辖:市辖区| 枣阳市| 昌黎县| 乳源| 红河县| 墨竹工卡县| 始兴县| 永州市| 象山县| 衢州市| 额尔古纳市| 淮滨县| 河池市| 长岛县| 彰武县| 三都| 连平县| 平湖市| 正镶白旗| 古浪县| 莱芜市| 井陉县| 云阳县| 大荔县| 兴化市| 华亭县| 肥东县| 绿春县| 兰州市| 靖安县| 黄大仙区| 金寨县| 兴海县| 抚松县| 衡阳县| 阿克陶县| 无锡市|