- 如果代碼中有
if
條件控制寒砖,盡量避免使用torch.jit.trace
來(lái)轉(zhuǎn)換代碼逗宁,因?yàn)樗荒芴幚碜兓瘲l件,如果非要用trace
的話嫉到,可以把if
條件控制改成別的形式沃暗,比如:
def f(x):
if x > 0:
return False
else:
return True
可以改成:
def f(x):
return x <= 0
jit
不能轉(zhuǎn)換第三方Python庫(kù)中的函數(shù),盡量所有代碼都使用pytorch實(shí)現(xiàn)何恶,如果速度不理想的話孽锥,可以參考github上的pytorch/extension-script
項(xiàng)目,用C++實(shí)現(xiàn)需要的功能细层,然后注冊(cè)成jit
操作惜辑,最后轉(zhuǎn)成torchscript
。如果要轉(zhuǎn)Mobilenet疫赎,最好使用pytorch1.3以上盛撑,否則識(shí)別不出來(lái)其中的
depth wise conv
,轉(zhuǎn)換出來(lái)的torchscript模型會(huì)比原模型大很多捧搞。模型的
forward
函數(shù)中盡量不要包含中文注釋抵卫。