国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)是怎么回事的評論 (共 條)

分享到微博請遵守國家法律
乌鲁木齐市| 南江县| 蓬安县| 阿勒泰市| 台北县| 惠水县| 庆元县| 大港区| 乐亭县| 静安区| 巩义市| 桂平市| 昌宁县| 万州区| 濮阳县| 天峻县| 措勤县| 龙胜| 罗甸县| 容城县| 合水县| 饶平县| 东阳市| 和硕县| 德庆县| 建平县| 勐海县| 大田县| 花莲县| 衡阳县| 固安县| 博客| 崇阳县| 军事| 泰安市| 白沙| 彩票| 增城市| 陇南市| 民勤县| 盖州市|