【发布时间】:2021-12-12 10:55:38
【问题描述】:
我有一个 modules.py 文件定义了几个基类。
这些基类中的一个继承自另一个模块中定义的类:
class MyClass(torch.nn.Module):
...
但是,我不想在那个 modules.py 文件中使用import torch,因为它是一个相当大的库,并且这个 modules.py 文件被多个进程使用,这意味着所有这些进程也将必须import torch,很快导致溢出(去过那里,做到了)。
有没有办法定义MyClass 并指定它基于torch.nn.Module 而无需import torch,让真正需要torch 模块的进程自己进行导入?因此,不需要MyClass 的其他进程可以忽略它的存在而不尝试解决它,例如?
【问题讨论】:
-
将
MyClass移动到自己的模块中,只在需要时才导入? -
这个工作
from torch import MyClass吗? -
你不能用
from torch.nm import Module只导入需要的类而不是其他类吗? -
import记住加载的模块,下一个import torch不应再次加载模块。 -
@MikeScotty 如果没有其他方法,我会这样做,但在我的情况下这不太优雅 @PCM @BR 不起作用,因为定义 Module 的文件也有一个 @ 987654333@@furas 我在这里处理多个独立的进程,所以它们不共享相同的内存空间
标签: python class inheritance python-import python-module