


Python の cupy ライブラリの amax 関数と max 関数は、列が 1 つだけ、または行が 1 つだけの行列を扱うときに問題が発生しますか?
我尝试使用 cupy 进行 gpu 加速来实现用于机器学习和图像分类的 softmax 激活函数。我观察到,对于形状为 nx1 或 1xn 的数组,cupys max 函数会输出错误。然而,对于 nxa 的所有其他情况(其中 n 和 a 都是 1 以外的整数),它工作得很好。
我的代码:
def softmax_(z): max_z = cp.max(z, axis=0, keepdims=true) # problematic max function exp_z = cp.exp(z - max_z) # subtracting the maximum value for numerical stability sum_exp_z = cp.sum(exp_z, axis=0, keepdims=true) # summing up the values return exp_z / sum_exp_z # dividing them to get the softmax array1 = cp.random.randn(3, 4) # 3x4 array2 = cp.random.randn(5, 1) # 5x1 print(softmax_(array1)) # no error print(softmax_(array2)) # produces an error
我的操作系统错误,我对此缺乏经验:
oserror: [winerror 123] the filename, directory name, or volume label syntax is incorrect: 'c:\\users\\confidential\\.cupy\\jitify_cache\\tmp1pxgjv_g' -> 'c:\\users\\confidential/.cupy/jitify_cache/jitify_<unknown>_200200_12030_2_b3452ffa79e273adadd0403b6b0c05b78158b1e0.json'
数组 1 的输出
output: [[0.17813469 0.20912114 0.19734889 0.30515635] [0.42569072 0.47354802 0.4463671 0.20997539] [0.39617459 0.31733085 0.356284 0.48486825]]
数组2的错误:
../../util_ptx.cuh(38): warning: util_type.cuh: [jitify] File not found ../../util_ptx.cuh(41): warning: util_debug.cuh: [jitify] File not found ../../thread/thread_load.cuh(40): warning: ../util_ptx.cuh: [jitify] File not found Traceback (most recent call last): File "c:\Users\confidential\Desktop\Projekte\Neural_network2\test.py", line 14, in <module> print(softmax_(array2)) ^^^^^^^^^^^^^^^^ File "c:\Users\confidential\Desktop\Projekte\Neural_network2\test.py", line 4, in softmax_ `max_Z = cp.max(Z, axis=0, keepdims=True)` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\confidential\PycharmProjects\nunpy\venv\Lib\site-packages\cupy\_statistics\order.py", line 81, in amax return a.max(axis=axis, out=out, keepdims=keepdims) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "cupy\_core\core.pyx", line 990, in cupy._core.core._ndarray_base.max File "cupy\_core\core.pyx", line 998, in cupy._core.core._ndarray_base.max File "cupy\_core\_routines_statistics.pyx", line 43, in cupy._core._routines_statistics._ndarray_max File "cupy\_core\_reduction.pyx", line 618, in cupy._core._reduction._SimpleReductionKernel.__call__ File "cupy\_core\_reduction.pyx", line 370, in cupy._core._reduction._AbstractReductionKernel._call File "cupy\_core\_cub_reduction.pyx", line 689, in cupy._core._cub_reduction._try_to_call_cub_reduction File "cupy\_core\_cub_reduction.pyx", line 540, in cupy._core._cub_reduction._launch_cub File "cupy\_util.pyx", line 64, in cupy._util.memoize.decorator.ret File "cupy\_core\_cub_reduction.pyx", line 240, in cupy._core._cub_reduction._SimpleCubReductionKernel_get_cached_function File "cupy\_core\_cub_reduction.pyx", line 223, in cupy._core._cub_reduction._create_cub_reduction_function File "cupy\_core\core.pyx", line 2254, in cupy._core.core.compile_with_cache File "C:\Users\confidential\PycharmProjects\nunpy\venv\Lib\site-packages\cupy\cuda\compiler.py", line 484, in _compile_module_with_cache return _compile_with_cache_cuda( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\confidential\PycharmProjects\nunpy\venv\Lib\site-packages\cupy\cuda\compiler.py", line 562, in _compile_with_cache_cuda ptx, mapping = compile_using_nvrtc( ^^^^^^^^^^^^^^^^^^^^ File "C:\Users\confidential\PycharmProjects\nunpy\venv\Lib\site-packages\cupy\cuda\compiler.py", line 319, in compile_using_nvrtc return _compile(source, options, cu_path, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\confidential\PycharmProjects\nunpy\venv\Lib\site-packages\cupy\cuda\compiler.py", line 284, in _compile options, headers, include_names = _jitify_prep( ^^^^^^^^^^^^^ File "C:\Users\confidential\PycharmProjects\nunpy\venv\Lib\site-packages\cupy\cuda\compiler.py", line 233, in _jitify_prep jitify._init_module() File "cupy\cuda\jitify.pyx", line 212, in cupy.cuda.jitify._init_module File "cupy\cuda\jitify.pyx", line 233, in cupy.cuda.jitify._init_module File "cupy\cuda\jitify.pyx", line 209, in cupy.cuda.jitify._init_cupy_headers File "cupy\cuda\jitify.pyx", line 198, in cupy.cuda.jitify._init_cupy_headers_from_scratch File "cupy\cuda\jitify.pyx", line 128, in cupy.cuda.jitify.dump_cache OSError: [WinError 123] The syntax for the file name, directory name, or volume label is incorrect: 'C:\\Users\\confidential\\.cupy\\jitify_cache\\tmps16uxq46' -> 'C:\\Users\\confidential/.cupy/jitify_cache/jitify_<unknown>_200200_12030_2_b3452ffa79e273adadd0403b6b0c05b78158b1e0.json'
正确答案
您需要遵循的一些调试步骤。
1)更新cupy
pip install cupy --upgrade
2) 检查权限。
确保运行脚本的用户具有读取和写入 cupy_cache_dir
环境变量中指定的缓存目录的必要权限。
- 重塑输入数组
如果问题仍然存在,您可以尝试将输入数组重塑为
'(n,)'
的形状,而不是'(n, 1)'
或'(1, n)'
。
4)禁用jit编译
您可以尝试通过将 cupy_cache_dir
环境变量设置为有效目录来禁用 jit 编译。
import cupy as cp import os os.environ['CUPY_CACHE_DIR'] = '/path/to/valid/directory'
将“/path/to/valid/directory”替换为 cupy 可以成功缓存已编译内核的目录。这可能会帮助您避免 oserror。
以上がPython の cupy ライブラリの amax 関数と max 関数は、列が 1 つだけ、または行が 1 つだけの行列を扱うときに問題が発生しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...
