我正在编写一个依赖的项目tensorflow,但是可以通过以下两个pip程序包之一来提供:tensorflow或tensorflow-gpu。我的项目无论哪种都能正常运行,但是我不希望在没有gpu支持的机器上运行它的人必须安装额外的开销,但是我仍然希望在具有gpu支持的机器上运行的人能够利用这一点。有没有一种方法,以纪念我的requirements.txt文件,我需要要么 tensorflow 或 tensorflow-gpu而不是两者兼而有之?
编辑:
在这种特定情况下,我应该注意,从程序员的角度来看,两者tensorflow和tensorflow-gpu都是相同的,因为它们都提供了tensorflow具有相同功能/类/方法等的模块,而不同之处仅在于tensorflow-gpuGPU加速的不同。那我遇到的问题是,如果我把tensorflow在requirements.txt后来为了与GPU加速运行,用户必须做的pip install -r requirements.txt && pip uninstall tensorflow && pip install tensorflow-gpu这是不理想的,如果我不是把tensorflow-gpu在requirements.txt,那么它将需要一堆不必要的系统库(CUDNN等),并且对于非GPU用户不可用。
再次编辑
作为解决方法,我决定提供两个不同的需求文件requirements.txt和requirements-gpu.txt,这两个文件都包含一个共享文件-r .requirements-core.txt并添加各自的tensorflow版本。这样,想要GPU支持的人可以pip install -r requirements-gpu.txt但标准pip install -r requirements.txt仍然可以为每个人开箱即用。
我需要从二维数组的每一行中选择多个不同的值。
A = np.array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9,10,11,12])
A[something]
>>> np.array([[ 1, 2],
[ 6, 7],
[11,12]])
Run Code Online (Sandbox Code Playgroud)
我知道我可以创建一个与 A 形状相同的布尔数组并将每个元素设置在 for 循环中,但我希望能提出更好的解决方案。