而 MinPy 有 Automatic gradient support,但感覺相容性不佳,要更動很多程式碼
CuPy 安裝和使用
pip install cupy
cupy_array = cupy.array(numpy_array)
numpy_array = cupy.asnumpy(cupy_array)
numpy.argwhere(cond) 要換成
cupy.transpose(cupy.asarray(cupy.nonzero(cond), dtype=np.int), axes=())
numpy.array([array1, array2]) 要換成
cupy.stack([array1, array2])
idx = numpy.max(array) 若只有1個值 要換成
idx = cupy.max(array).item()
MinPy 安裝和使用
查詢 mxnet 和 CUDA 版本的配合
https://mxnet.apache.org/versions/master/install/index.html?platform=Linux&language=Python&processor=GPU
sudo apt-get update
sudo apt-get install -y build-essential git libatlas-base-dev libopencv-dev
git clone --recursive -b v1.5.0 https://github.com/dmlc/mxnet
cd mxnet;
cp make/config.mk .
echo "USE_CUDA=1" >>config.mk
echo "USE_CUDA_PATH=/usr/local/cuda" >>config.mk
echo "USE_CUDNN=1" >>config.mk
make -j$(nproc)
pip install numpy pyyaml
python ~/mxnet/python/setup.py install
minpy_array = minpy.array(numpy_array)
numpy_array = minpy_array.asnumpy()
numpy.array([array1, array2]) 要換成
minpy.stack(*[array1, array2])
numpy_array.transpose(axes=()) 要換成
minpy.transpose(minpy_array, axes=())
numpy.zeros((0, 1)) 是合法的
minpy.zeros((0, 1)) 是不合法的
numpy_array[numpy.newaxis, :] 要換成
minpy.expand_dims(minpy_array, axis=0)
沒有留言:
張貼留言