网络结构实现需要在灵活性和速度上进行权衡,这种权衡可以体现在框架设计的粗细粒度上。例如一个Inception的结构,是做成像Caffe这样通过各个层的累积来形成,还是直接由Conv2D, BiasAdd, Relu这样的基本计算来直接构造一个Inception结构。这样不同粗细粒度的构建方法体现了整个框架对速度或是灵活性的权衡。 另外,对于底层的实现,最好用硬件供应商提供的数值计算库,比如CuDNN, MKL-DNN,Accelerate,Eigen,NNPack等。 4、 可移植性 要提升框架的实用价值,就必须提升其训练出的模型的可移植性。换句话说,也就是要让框架训练出的模型具有平台无关性,包括了系统层面(windows、linux、android、iOS、OS X等)及硬件层面(CPU、GPU、FPGA、ARM等)。这就必须使得设计出的模型更加轻量。 雷锋网(搜索“雷锋网(搜索“雷锋网”公众号关注)”公众号关注)注:本文由大牛讲堂授权雷锋网发布,如需转载请联系原作者,并注明作者和出处,不得删减内容。有兴趣可以关注公号地平线机器人技术,了解最新消息。 (责任编辑:本港台直播) |