如果我运行conda install tensorflowconda并希望安装GPU版本以及CUDA等。我没有Nvidia GPU,所以我想安装仅CPU版本。
$ conda install tensorflow
Solving environment: done
## Package Plan ##
environment location: /home/cjk/.conda/envs/athion-forecaster
added / updated specs:
- tensorflow
The following packages will be downloaded:
package | build
---------------------------|-----------------
tensorflow-base-1.12.0 |gpu_py36had579c0_0 216.9 MB
tensorflow-1.12.0 |gpu_py36he74679b_0 3 KB
_tflow_select-2.1.0 | gpu 2 KB
tensorboard-1.12.0 | py36hf484d3e_0 3.1 MB
------------------------------------------------------------
Total: 220.1 MB
The following NEW packages will be INSTALLED:
_tflow_select: 2.1.0-gpu
cudatoolkit: 9.2-0
cudnn: 7.2.1-cuda9.2_0
cupti: 9.2.148-0
keras-applications: 1.0.6-py36_0
keras-preprocessing: 1.0.5-py36_0
tensorboard: 1.12.0-py36hf484d3e_0
tensorflow: …Run Code Online (Sandbox Code Playgroud) 我有一个大型(> 100 GB)xarray数据集,其中包含天气预报数据(维度时间、预测步骤、纬度、经度、随时间变化的dask块、纬度和经度维度),并且想要计算出平均天气(每次点)在不规则形状的区域(由具有维度纬度和经度的二进制掩码数组定义)上。这样做的天真的方法是:
average_weather = weather.where(mask).mean(dim=('latitude', 'longitude'))
Run Code Online (Sandbox Code Playgroud)
然而,对于大多数(纬度、经度)块,该区域中的掩码值均为零,因此无需加载该块。据我所知,通过简要查看 xarray 和 dask 源代码,没有任何优化可以在加载块之前检查块的所有掩码值是否为零,因此天真的命令将使用大量不必要的数据传输和CPU。
我确实看到可以drop=True在where命令中使用将计算限制为掩码的边界框,但是是否可以做得更好?