Pytorch 项目应该在 GPU 上运行。我想在我的笔记本电脑上仅使用 CPU 运行它。有很多地方调用.cuda()
模型、张量等,在cuda不可用时执行失败。是否可以在不更改所有代码的情况下做到这一点?
我用 python 制作了一个程序,当使用 python 解释器运行时它可以正确运行。它从同一目录中读取一些文件。为了从其他路径运行脚本,脚本将其工作目录更改为自己的位置。
import os
abspath = os.path.realpath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)
Run Code Online (Sandbox Code Playgroud)
但是当我将其打包为 .exe 时,这不起作用。因为在运行 .exe 时,__file__
变量是"main.py"
.
我知道可以通过显式设置固定路径来修复它:
os.chdir('/Fixed/Path')
Run Code Online (Sandbox Code Playgroud)
但是有一个优雅的解决方案吗?
考虑当我有不同的类实现相同的方法但返回不同类型时的情况。
class A:
def method(self) -> float:
return 3.14
class B:
def method(self) -> str:
return 'a string'
def do_method(x):
return x.method()
r = do_method(A())
reveal_type(r) # Revealed type is 'Any'
Run Code Online (Sandbox Code Playgroud)
Mypy 无法推断函数的确切返回类型do_method()
,这取决于其参数x
。我如何帮助 Mypy 实现这一目标?
注意:还请考虑到我想与该函数一起使用的此类类的数量do_method()
太多,因此不想将它们全部更改。