定义、验证和可视化神经网络结构的框架。

narchi的Python项目详细描述


https://circleci.com/gh/omni-us/narchi.svg?style=svghttps://codecov.io/gh/omni-us/narchi/branch/master/graph/badge.svghttps://sonarcloud.io/api/project_badges/measure?project=omni-us_narchi&metric=alert_statushttps://badge.fury.io/py/narchi.svghttps://img.shields.io/badge/contributions-welcome-brightgreen.svg

narchi神经网络体系结构定义包

narchi是python包,提供了定义神经网络的功能 以独立于实现的方式构建网络体系结构。这是有意的 使网络架构高度可配置,同时也使任务 更容易的。在

主要特点

  • 网络体系结构是用jsonnet format编写的,它提供了有用的特性,如输入 定义重复块的参数和函数。在
  • 网络内部张量的形状是自动推导出来的 通过传播输入的形状,因此需要较少的努力和存在 较少出错。在
  • 形状的传播是通过符号运算来完成的 很容易理解输入和派生形状之间的关系。在
  • 体系结构文件可以引用其他体系结构文件,因此 接近模块化。在
  • 包含一个命令行工具,用于验证jsonnet体系结构文件并 创建各自网络体系结构的详细图表。在
  • 几个examples 旨在说明支持的不同功能。在
  • 包括允许实例化Pythorch模块的基本实现:
    • 实例化只需要jsonnet架构文件。在
    • 不需要为每个新架构编写模块类或转发函数。在
    • 一个支持安装多个示例的基本实现。在
    • 第二个例子支持压缩的1d和2d序列,说明了体系结构文件的独立于实现的性质。在

摘要示例

在这里您可以看到一个示例,它说明了narchi提供的功能。这个例子 是针对在torchvision中实现的resnet18,尽管在头脑中 narchi的潜力在于网络架构的易配置性,而不是 现有架构的重新实现。在

从体系结构文件实例化pytorch模块可以很容易地完成如下操作 跟随。在

fromnarchi.instantiators.pytorchimportStandardModulemodule=StandardModule('resnet.jsonnet',state_dict='resnet18-5c106cde.pth',cfg={'ext_vars':{"num_blocks":[2,2,2,2]}})

创建体系结构图需要一个命令,如下所示。在

^{pr2}$

下面您可以看到 resnet18的第一个下采样层。在

imgs/resnet_crop.png

json中生成架构上一部分的部分 图如下所示。请注意,不包括形状信息, 因为这些都是自动导出的。在

{"_class":"Sequential","_id":"layer2","blocks":[{"_class":"Group","_name":"ResBlock","blocks":[{"_class":"Identity","_id":"ident"},{"_class":"Conv2d","_id":"conv1","bias":false,"dilation":1,"kernel_size":3,"output_size":128,"padding":1,"stride":2},{"_class":"BatchNorm2d","_id":"bn1"},{"_class":"Sequential","_id":"downsample","blocks":[{"_class":"Conv2d","bias":false,"kernel_size":1,"output_size":128,"padding":0,"stride":2},{"_class":"BatchNorm2d"}]},{"...":"..."}],"graph":["ident -> conv1 -> bn1 -> relu1 -> conv2 -> bn2 -> add -> relu2","ident -> downsample -> add"],"input":"ident","output":"relu2"}]}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java日期格式的月和日的固定长度?   无法将java ArrayList<String>转换为字符串。   java当我使用log4j 1.2.15时,编译时出现错误;当更改为1.2.16时,一切正常   java如何使用ArgumentMatchers将任何队列告知Mockito?   如何解决“java”。Java电子邮件API中的lang.ExceptionInInitializerError   java是实例化对象名并设置其值的通用方法   java在多线程环境中,如果一个线程崩溃,如何关闭JVM?   java WebDriverManager在selenium中获取不正确版本的驱动程序   如果JAVA中后减量的优先级高于前增量,那么为什么下面的代码输出为22.0而不是20.0。?   在hibernate中找不到java属性   当我用java运行调度程序时,什么都没有发生   jackson如何在java中从数据库中检索json对象   java安卓:如何在自定义适配器中设置侦听器并获取imagebutton单击的位置   java MySQLIntegrityConstraintViolationException:列“问题id”不能为空错误   JavaSpring自定义注销过滤器在注销前执行一些操作?   java如何返回常量集合   java使用subselect进行一对多分页   java二进制搜索基础。陷入无限循环