我正在查看代码库,注意到以下导入模块的样式Import Torch.nn作为nn
在我的个人工作中,我一直使用以下方法来自torch import NN
这两种导入方式有什么不同吗?
两者在技术上是不同的:
导入火炬。nn作为nn
将只导入模块/包火炬。nn
,其中从torch导入nn
可以并且将更喜欢从torch
模块/包导入属性.nn
。在实践中,用相同的完全限定名指代两个单独的事物是一种不良作风。 因此,torch.nn
应该只引用模块/包。 在这种常见的情况下,两个import语句在功能上是等价的:同一个对象被导入并绑定到相同的名称。
基本导入语句(no from子句)分两步执行:
from表单使用稍微复杂一点的过程:
>
对于导入子句中指定的每个标识符:
导入模块
和从模块导入
的区别主要是主观的。 选择一个你最喜欢的,并在使用它时保持一致。 以下是两者的一些优点,可以帮助你做出决定。
进口优势
从火炬进口nn的优势
示例中的两种样式在使用时都有相同的语法,因此这取决于您的喜好,但您应该与一种样式保持一致。