torch class

1、[metatable] torch.class(name, [parentName], [module])
在torch里面,class就是一个拥有metatable的table
1)如果module没有提供,name也不含有点号,也即不是package.className的形式,那么class就会被定义在global environment里面,而如果是package.className,新定义的类就会被包含在package里面
2)如果module提供了,那么这个class就会在module里面,以键为className的形式存在
传建一个新的对象name()就可以,最后返回的metatable里面承载了这个类中所有的方法
最重要的是,在调用torch.class的时候会调用torch.newmetatable()这个函数,创建一个lua table,然后在这个table上面建立metatable,如果metatable里面有lua_init()函数的话,就回去调用这个函数!!当然一般都是会写__init函数的。

2、torch.newmetatable(name, parentName, constructor)
注册一个名字是name的新的metatable
如果parentName不为空并且是一个有效的torch类型,那么把parent对应的metatable设置为新的metatable的metatable
如果constructor不是空的,并且是有效的,那么就把新的metatable加入到constructor对应的模块中

3、[table] torch.getmetatable(string)
获得由string指定的torch class所对应的metatable,如果string所指定的class不存在,那么就返回nil

for k,v in pairs(torch.getmetatable('torch.FloatTensor')) do print(k,v) end

会看到torch.FloatTensor这个类的所有的meta方法
4、[object] torch.setmetatable(table, classname)
把table所对应的metatable设置成classname所指的metatable

以上便是torch的class构建使用最重要的四个函数,其他的参考官网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值