我创建了一个 Python 3.7 conda 虚拟环境并使用此命令安装了以下软件包:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 matplotlib scipy opencv -c pytorch
它们安装得很好,但是当我运行我的程序时,出现以下错误,表明未找到启用 CUDA 的设备:
raise RuntimeError('Attempting to deserialize object on a CUDA '
RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.
Run Code Online (Sandbox Code Playgroud)
我有一个 NVIDIA RTX 3060ti GPU,据我所知,它启用了 cuda,但每当我进入 conda 环境中的 Python 交互式 shell 时,我都会在False评估时得到torch.cuda.is_available()建议,可能 CUDA 未正确安装或未找到。
当我执行 …
假设我有两个列表list_1并且list_2
list_1 = [1, 5, 10]
list_2 = [3, 4, 15]
我想要获取包含 list_1 和 list_2 中的元素的元组列表,使得元组中的数字之间的差异在某个常数 c 之下。
例如,假设 c 是 2,那么我的元组将是:
[(1, 3), (5, 3), (5, 4)]
当然,可以迭代两个列表并检查两个元素之间的差异是否小于 c,但其复杂度为 n^2,我宁愿降低该复杂度。
我有两个功能。他们是:
f1 [] = []
f1 (x:xs) = if contains x xs then f1 xs else x:f1 xs
Run Code Online (Sandbox Code Playgroud)
和
f6 xs = f1 (rev xs)
Run Code Online (Sandbox Code Playgroud)
除了空列表和任何具有一个元素的列表之外,这两个函数返回相同的列表是没有意义的,但是在此函数上运行 quickcheck 时:
prop_sort6 xs = (f1 xs == f6 xs) == True
Run Code Online (Sandbox Code Playgroud)
所有的测试都通过了。为什么会这样?
编辑:
例如这样做:(f1 [1,2,3] == f6 [1, 2, 3])显然会导致 False,但 quickcheck 仍然通过。