我刚刚安装了 Visual Studio 2019 和 Tensorflow,但我无法导入 Keras,因为我收到以下错误消息:
Keras 需要 TensorFlow 2.2 或更高版本。通过以下方式安装 TensorFlow
pip install tensorflow
问题是我别无选择,只能安装 Tensorflow 1.15,因为我有以下设置:
我必须为该 Python 版本、我的 CPU 和名为“tensorflow-1.15.0-cp37-cp37m-win_amd64”的 CUDA 版本下载并安装一个轮子。
Tensorflow 似乎可以工作(它检测到我的 GPU 并打印“hello world”消息),但问题是 Visual Studio 安装了最新版本的 Keras。
如何指定较旧的兼容版本,新版本兼容什么?
这段代码实现了排序网络,我正在尝试使用 Numba 来编译它们以提高性能。然而,每个函数的编译时间呈指数增长。总共有大约 60 个函数(下面仅显示 19 个示例),Numba 在太阳经历红巨星膨胀之前无法完成编译它们。
我怀疑问题在于 Numba 尝试在编译期间应用 -O2 等激进的优化标志,从而导致过度的复杂性和处理时间。
编辑:我发现 numba从环境变量 NUMBA_OPT 中获取他的优化级别,所以我将其设置0为
import os
os.environ["NUMBA_OPT"] = "0"
Run Code Online (Sandbox Code Playgroud)
但它什么也没做。
有没有办法指示 Numba 简单地生成这些函数的汇编代码,而不尝试进一步优化?或者有其他方法可以编译它吗?
import numba as nb
import numpy as np
# This function calculates the min and the max of his parameters.
@nb.njit(nb.types.UniTuple(nb.uint64, 2)(nb.uint64, nb.uint64),fastmath=True,inline='always')
def m(a: np.uint64, b: np.uint64) -> (np.uint64, np.uint64):
return min(a, b), max(a, b)
@nb.njit(nb.uint64[:](nb.uint64[:]),fastmath=True)
def sort_small_array_1(a: 'np.ndarray[np.uint64]') -> 'np.ndarray[np.uint64]':
return a
print('Defining function 2')
@nb.njit(nb.uint64[:](nb.uint64[:]),fastmath=True) …Run Code Online (Sandbox Code Playgroud)