推导 pytorch 网络的结构

2024-03-14

对于我的用例,我需要能够采用 pytorch 模块并解释模块中的层序列,以便我可以以某种文件格式在层之间创建“连接”。现在假设我有一个简单的模块,如下所示

class mymodel(nn.Module):
    def __init__(self, input_channels):
        super(mymodel, self).__init__()
        self.fc = nn.Linear(input_channels, input_channels)
    def forward(self, x):
        out = self.fc(x)
        out += x
        return out


if __name__ == "__main__":
    net = mymodel(5)

    for mod in net.modules():
        print(mod) 

这里的输出结果是:

mymodel(
  (fc): Linear(in_features=5, out_features=5, bias=True)
)
Linear(in_features=5, out_features=5, bias=True)

正如您所看到的,有关加等于运算或加运算的信息未被捕获,因为它不是前向函数中的 nnmodule。我的目标是能够从 pytorch 模块对象创建图形连接,以在 json 中表达如下内容:

layers {
"fc": {
"inputTensor" : "t0",
"outputTensor": "t1"
}
"addOp" : {
"inputTensor" : "t1",
"outputTensor" : "t2"
}
}

输入张量名称是任意的,但它捕获了图的本质以及层之间的连接。

我的问题是,有没有办法从 pytorch 对象中提取信息?我本来想使用 .modules() 但后来意识到手写操作不能以这种方式捕获为模块。我想如果一切都是 nn.module 那么 .modules() 可能会给我网络层安排。在这里寻求一些帮助。我希望能够知道张量之间的连接以创建上述格式。


您要查找的信息未存储在nn.Module,而是在grad_fn输出张量的属性:

model = mymodel(channels)
pred = model(torch.rand((1, channels))
pred.grad_fn  # all the information is in the computation graph of the output tensor

提取此信息并非易事。您可能想看看torchviz https://github.com/szagoruyko/pytorchviz/blob/master/torchviz/dot.py包可以从中绘制出漂亮的图表grad_fn信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

推导 pytorch 网络的结构 的相关文章

  • Erlang:到 Python 实例的端口没有响应

    我正在尝试通过 Erlang 端口与外部 python 进程进行通信 首先 打开一个端口 然后通过 stdin 将消息发送到外部进程 我期待在进程的标准输出上得到相应的答复 我的尝试如下所示 open a port Port open po
  • 导入错误:无法导入名称“FFProbe”

    我无法获取ffprobe包 https github com simonh10 ffprobe在 Python 3 6 中工作 我使用 pip 安装它 但是当我输入import ffprobe it says Traceback most
  • App Engine 上的 Django 与 webapp2 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用管理员权限打开cmd(Windows 10)

    我有自己的 python 脚本来管理我的计算机上的 IP 地址 它主要在命令行 Windows 10 中执行netsh命令 您必须具有管理员权限 这是我自己的计算机 我是管理员 运行脚本时我已经使用管理员类型的用户 Adrian 登录 我无
  • Python Requests 库重定向新 url

    我一直在浏览 Python 请求文档 但看不到我想要实现的任何功能 在我的脚本中我设置allow redirects True 我想知道该页面是否已重定向到其他内容 新的 URL 是什么 例如 如果起始 URL 为 www google c
  • 会话数据库表清理

    该表是否需要清除或者由 Django 自动处理 Django 不提供自动清除功能 然而 有一个方便的命令可以帮助您手动完成此操作 Django 文档 清除会话存储 https docs djangoproject com en dev to
  • 获取 Keras model.summary() 作为表

    我在 Keras 中创建了相当大的模型 我正在用 LaTeX 写一篇关于它的文章 为了很好地描述 LaTeX 中的 keras 模型 我想用它创建一个 LaTeX 表 我可以手动实现它 但我想知道是否有任何 更好 的方法来实现这一点 我四处
  • multiprocessing.Queue 中的 ctx 参数

    我正在尝试使用 multiprocessing Queue 模块中的队列 实施 https docs python org 3 4 library multiprocessing html exchang objects Between p
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 使用 ElementTree 在 python 中解析 xml

    我对 python 很陌生 我需要解析一些脏的 xml 文件 这些文件需要先清理 我有以下 python 代码 import arff import xml etree ElementTree import re totstring wit
  • Flymake的临时文件可以在系统临时目录下创建吗?

    我目前正在使用以下代码在 emacs 中连接 Flymake 和 Pyflakes defun flymake create temp in system tempdir filename prefix make temp file or
  • pandas groupby 操作缺少数据

    在 pandas 数据框中 我有一列如下所示 0 M 1 E 2 L 3 M 1 4 M 2 5 M 3 6 E 1 7 E 2 8 E 3 9 E 4 10 L 1 11 L 2 12 M 1 a 13 M 1 b 14 M 1 c 15
  • Snakemake:将多个输入用于具有多个子组的一个输出的规则

    我有一个工作管道 用于下载 比对和对公共测序数据执行变体调用 问题是它目前只能在每个样本的基础上工作 i e作为每个单独测序实验的样本 如果我想对一组实验 例如样本的生物和 或技术复制 执行变体调用 则它不起作用 我试图解决它 但我无法让它
  • Python:导入模块一次然后与多个文件共享

    我有如下文件 file1 py file2 py file3 py 假设这三个都使用 lib7 py lib8 py lib9 py 目前 这三个文件中的每一个都有以下行 import lib7 import lib8 import lib
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • 在Python中使用pil读取tif图像时出现值错误?

    我必须读取尺寸的tif图像2200 2200并输入 uint16 我将 PIL 库与 anaconda python 一起使用 如下所示 from PIL import Image img Image open test tif img i
  • 如何在引发异常时将变量传递给异常并在异常时检索它?

    现在我只有一个空白的异常类 我想知道如何在引发变量时给它一个变量 然后在 try except 中处理它时检索该变量 class ExampleException Exception pass 为其构造函数提供一个参数 将其存储为属性 然后
  • tf.print() vs Python print vs tensor.eval()

    看来在Tensorflow中 至少有三种方法可以打印出张量的值 我一直在读here https www freecodecamp org news debugging tensorflow a starter e6668ce72617 an
  • PyQt5按钮lambda变量变成布尔值[重复]

    这个问题在这里已经有答案了 当我运行下面的代码时 它显示如下 为什么 x 不是 x 而是变成布尔值 这种情况仅发生在传递到用 lambda 调用的函数中的第一个参数上 错误的 y home me model some file from P
  • 从 Django 运行 shell 命令

    我正在 Django 中开发一个网页 使用 apache 服务器 需要调用 shell 命令来启用 禁用一些守护进程 我尝试这样做 os system service httpd restart 1 gt HOME out 2 gt HOM

随机推荐

  • 使用 AsyncTask 填充 ListView

    这可能不是很优雅 但我想做的是连接到 Web 服务 获取 JSON 解析它 从中创建一个对象 将该对象添加到 ArrayList 然后使用该 ArrayList 来填充我的列表显示 我正在尝试使用 AsyncTask 来完成所有这一切 摘要
  • CSS3显示:表格,溢出-y:滚动不起作用

    我有一个需要垂直滚动的数据表 看来如果你的display值为table 您不能设置height or 最大高度 所以溢出 y 滚动什么也没做 带表格的 Codepen http codepen io anon pen MYZJdE fake
  • 使用pivot_longer整理数据集:将多列分成两列

    我大家 我目前正在学习 R 并尝试使用 tidyverse 包中的pivot longer 整理数据集 我有这个小事 title actor 1 actor 2 actor 3 actor 1 FB likes actor 2 FB lik
  • Eclipse 中的 XML 验证和自动完成

    在android SDK中 当我编辑android布局xml文件时 它可以进行验证和自动完成 这是如何运作的 如何使用我自己定义的 xml 格式使 eclipse 验证并自动完成 Eclipse 可用于编辑和验证 XML 文件 我在 Ecl
  • 如何延迟谷歌自动完成功能以节省信用

    正如你所知 每次我们输入谷歌地图自动完成功能都会触发 我想为此设置一个延迟函数 例如250毫秒 这样可以给用户更多的时间来输入并节省积分 我尝试添加 timeout 但看起来它对我不起作用 请您帮我看看这个好吗 提前致谢 网页
  • 可以跨域获取iframe的url吗?

    如果是跨域 iframe 如何在页面加载时获取 iframe 的当前 url 背景 我正在尝试在我的网站上启用 SSL 但是 我的用户需要能够通过 iframe 加载任何 url 如果他们尝试使用 http 协议加载 iframe 它将拒绝
  • 项目中不存在目标“/t:native_metrics”

    我想在我的项目上安装 newrelic 但我从控制台收到 node modules newrelic native metrics build bind ing sln metaproj error MSB4057 The target t
  • java网格包布局:避免中心对齐

    在我的 GUI 应用程序中 我有几个 JPanel 它们在程序运行期间的不同点被实例化 并且某些操作将导致其中之一显示在滚动窗格中 mViewport setViewportView currentPanel 问题是 我的面板是使用网格包布
  • Android 中 Imageview 的圆角

    我在线性布局中有一个文本视图和图像视图 Textview 位于顶部 imageview 位于底部 我使用下面的线条来实现线性布局的圆角 但 imageview 的角不是圆角的 我看到只有线性布局的顶角是圆角的 如何使 imageview 的
  • Ansible:如何从另一个变量构造一个变量,然后获取它的值

    这是我的问题 我需要使用一个变量 target host 然后将 host 附加到它的值以获取我需要其值的另一个变量名称 如果你看看我的剧本 任务 nbr 1 2 3 获取变量的值 但是 nbr 4 无法执行我所期望的操作 有没有其他方法可
  • Rails 控制台未将 SQL 语句输出到我的开发日志

    当我通过本地主机访问 Webrick 服务器时 或者当我运行 Rails 迁移时 我的development log 会被正确写入 但是 当我使用 rails c 启动 Rails 控制台 然后尝试创建一个新的数据库对象并通过 user s
  • WSO2AM - SAML - 提供的授权无效

    我正在将 WSO2AM 与我们内部专有的身份提供商 IDP 集成 我正在关注 wso2 文档 与 OAuth2 交换 SAML2 承载令牌 SAML 扩展授予类型 https docs wso2 com display AM210 SAML
  • iOS CoreLocation 检查 CLLocation 时间戳以使用它

    如何检查 CLLocation 对象并决定是要使用它还是丢弃结果并获取新的位置更新 我在 CLLocation 上看到了时间戳属性 但我不确定如何将其与当前时间进行比较 另外 在我比较时间并发现以秒为单位的差异之后 差异应该在什么值以下才能
  • 绘制并填充自定义形状

    我正在尝试使用 Android 中的 Path 对象创建自定义形状 但遇到了一个奇怪的问题 我想要实现的目标如下图所示 这是我用来绘制和填充形状的代码 public class BallView extends RelativeLayout
  • Linux 中的调度:在计算机空闲时运行任务(= 无用户输入)

    我想跑折叠 home http folding stanford edu 我的 Ubuntu 8 10 机器上的客户端仅在空闲时运行 因为该程序消耗大量 RAM 我所说的 空闲 是指没有用户活动 键盘 鼠标等 时的状态 由于 F H 具有最
  • 有 JPasswordField 的替代方案吗?

    当输入如下密码时 yeast bulk seize is shows pain 每个人都可以听到敲击空格键的声音 因此在密码字段中显示空格似乎也是合乎逻辑的 所以我想要一些能够展示的东西 代替 这将使打字变得更容易 同时几乎不会降低安全性
  • Webpack + Babel 错误

    我正在尝试配置 webpack 并让一切正常运行 但现在遇到了同样的错误 我梳理了其他一些帖子 这些帖子似乎是通过纠正拼写 语法错误来解决的 但我似乎无法找出代码中的任何错误 是不是有更严重的事情发生了 ERROR in src compo
  • 带有错误模块“main:Main”的 stack ghci 在多个文件中定义:

    我有一个小的 haskell 程序 它可以使用堆栈构建和执行 当我开始时stack ghci我收到一条错误消息 我不明白并且无法继续 GHCi version 8 10 4 https www haskell org ghc for hel
  • 来自本地的 IAM SAML 联合失败

    我在本地虚拟机中设置了 openldap 和 shibboleth idp 并在 aws 中创建了身份提供商并上传了元数据 在元数据中 url 指向我的本地 IP 地址 例如 SingleSignOnService Binding urn
  • 推导 pytorch 网络的结构

    对于我的用例 我需要能够采用 pytorch 模块并解释模块中的层序列 以便我可以以某种文件格式在层之间创建 连接 现在假设我有一个简单的模块 如下所示 class mymodel nn Module def init self input