Created by: reyoung
框架性质的实现了 #341 (closed) 。只是实现了 data、fc、trans、selective fc几个layer的check工作。
这个事情我又重新思考了一下,感觉在CPP里面实现这个功能可能还是比较慢,鉴于我们最近事情比较多,所以我们还是在Python中把这个事情搞一下吧。
在Python中实现这个事情的缺点就是,需要用户在data_layer里面修改一下设置size
的方式,从原来直接设置size=
,改成设置input_type=
,进而可以获得到data_layer的数据类型。
从而可以让后续的层获得正确的数据类型,这样我们就可以依次检查每个Layer的输入格式了。
对于每个Layer输入格式的检查,使用了python的decorator
和类似于调用链的方式。decorator是因为,每个Layer可以接受什么类型的输入,产生什么类型的输出,是每一个Layer的属性。使用decorator给Layer做出标注,语意更清晰。
使用调用链模式,是因为,每个Layer可以接受的输入和产生的输出不一样,使用调用链可以有效的组合各种情况,在定义各种Layer的输入和输出的时候,会减少代码量。