Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

機械学習 (Machine Learning)

Tensorflowで「Could not load dynamic library ‘cudart64_110.dll’」が出る原因と対処

投稿日:2022年9月14日 更新日:

 

<目次>

(1) Tensorflowで「Could not load dynamic library ‘cudart64_110.dll’」が出る原因と対処
 (1-1) 事象
 (1-2) 原因
 (1-3) 対策
 (1-4) 参考:CUDAとは?

(1) Tensorflowで「Could not load dynamic library ‘cudart64_110.dll’」が出る原因と対処

(1-1) 事象

「pip install tensorflow」を実行後、下記の簡単なコードを疎通しようとした所、後述のメッセージが発生

import tensorflow as tf
def main():

    print("Hello")

if __name__ == "__main__":
    main()
(警告/エラーメッセージ)
YYYY-MM-DD 21:04:26.061014: W_tensorflow_stream_executor_platform_default_dso_loader_cc_64] Could_not_load_dynamic library_cudart64_110_dll'; dlerror: cudart64_110.dll not found

YYYY-MM-DD 21:04:26.061295: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
(図111)

(1-2) 原因

・バージョン2.1以降のTensorflow(以降TF)は、pipからダウンロードできる標準のtensorflowパッケージにはCPU版とGPU版の両方が含まれるようになっています。
 
・①バージョン2.1より前のTFの場合
CUDAライブラリを探して見つからない場合は「エラーと例外」を出力します。
 
・②バージョン2.1以降のTFの場合
正しいCUDAのバージョンを動的に探し、見つからない場合は「警告」を出力し、CPUのみのモードに戻ります。
⇒今回のケースはこちらに該当します。
 
※メッセージの中で出る「W」は警告(Warning)、「E」はエラー(Error)、「F」は致命的なエラー(Fatal Error)の意味

(1-3) 対策

●(ケース1)GPUアクセラレータを使わない場合

・ご自身のマシンが「CUDAが有効化されたGPU」を搭載していない場合や、「GPUアクセラレーション」(計算量の多いタスクをCPU⇒GPUにシフトして加速)が不要な場合
→特に対処は不要です。

(参考)

どうしても警告を消したい場合はTFのログレベルを変更して「警告を抑制」する事も可能ですが、全ての警告を止めてしまうため、余り推奨ではありません。
・ログレベルの変更は、以下のコードを利用して実施可能です。

(例)

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' 
(図131)

●(ケース2)GPUアクセラレータを使う場合

・一方で、TFを導入して「GPUアクセラレーション」をしたい場合、まずはご自身のCUDAのインストールを確認してみるのが第一ステップとなります(例:Tensorflow 2.1はCUDA 10.1を使用)
・ここでは詳しくは紹介しませんが、もしCUDAを導入する場合、ざっくり以下のような手順になります。
 
(手順概要)
・①GPUドライバーのインストール
・②CUDAのインストール
・③cuDNNのインストール
→NVIDIA開発者プログラムへのサインアップが必要
→適当な場所に解凍し、binフォルダをパスに追加
・④tensorflowのインストール
↓ 
・⑤PCの再起動
 

(1-4) 参考:CUDAとは?

・Compute Unified Architectureの略。
・GPU向けの、並列コンピューティングプラットフォーム(開発・実行環境)である
・GPUはCPUよりも断然多くのコアを搭載しており、大量のタスクを並列実行できる(CPUは逐次実行)
・NVIDIA社が自社製のGPU向けに開発・提供している。
 
(参考)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-機械学習 (Machine Learning)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

確率と尤度の違いとは?概念や数式なども交えて比較紹介

  <目次> (1) 確率と尤度の違いとは?概念や数式なども交えて比較紹介  (1-1) 確率:「パラメータ」からデータの「確率」を算出した値?  (1-2) 尤度:「データ」からパラメータ …

no image

最尤推定とは?考え方を実世界の例も交えシンプルにご紹介

  <目次> (1) 最尤推定とは?考え方を実世界の例も交えシンプルにご紹介  (1-1) 最尤推定とは?  (1-2) 最尤推定の考え方  (1-3) 最尤推定の実際の計算方法は? (1) …

確率的勾配降下法(SGD)をロジスティック回帰に適用しPythonで実装した例をご紹介

  <目次> (1) 確率的勾配降下法(SGD)をロジスティック回帰に適用しPythonで実装した例をご紹介  (1-1) (課題)「勾配降下法」が抱える課題  (1-2) (対策)確率的勾 …

ロジスティック回帰をエクセルで計算する方法(ディープラーニング)

<目次> (1) ロジスティック回帰をエクセルで計算する方法(ディープラーニング)  (1-1) 【前提①】ロジスティック回帰とは?  (1-2) 【前提②】解決したい課題  (1-3) ロジスティッ …

ディープラーニング入門でニューラルネットワークを用いてAND回路を学習させるプログラムをJavaで作成

ニューラルネットワークでAND回路を学習させるJavaプログラムを作成したので、その解説を行います。 (0)目次&概説 (1) ニューラルネットワークの概要  (1-1) ニューラルネットワークとは? …

  • English (United States)
  • 日本語
Top