質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

716閲覧

visual stadio 2017でpythonを動かすときにGPUを使いたいのですがエラーが出てしまいます。どなたか解決方法を教えていただけないでしょうか?

SioRyu

総合スコア28

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/06/05 12:36

大学のゼミで一か月ほど前からpythonの勉強を始めました。
研究室のパソコンでは動いたのですが自宅のPCで試したところCPUを使う動作では動いてくれたのですがGPUを使うと

エラーメッセージ

RuntimeError: CUDA environment is not correctly set up
(see https://github.com/chainer/chainer#installation).No module named 'cupy'

というエラーが出ます
自分でいろいろ試して
イメージ説明
この二つをPCにインストールしたのですがやはり同じエラーが出ます
どうやって直せばいいのでしょうか?
ちなみに今回実行しているプログラムはすでに完成しているものをコピペしたものです。

# coding: utf-8 # A feedforward neural network for the MNIST problem. # Copyright (C) 2016 Atsumi Laboratory. All rights reserved. import numpy as np from numpy.core.multiarray import dtype import chainer from chainer import optimizers, cuda, datasets, Variable, Chain import chainer.functions as F import chainer.links as L import time class Fnn(Chain): """3層フィードフォワードネットワーク """ def __init__(self, num_of_input_units, num_of_hidden_units, num_of_output_units): """3層フィードフォワードネットワークの生成 Args: num_of_input_units (int): 入力層ユニット数 num_of_hidden_units (int): 隠れ層ユニット数 num_of_output_units (int): 出力層ユニット数 """ super().__init__( l1 = L.Linear(num_of_input_units, num_of_hidden_units), l2 = L.Linear(num_of_hidden_units, num_of_hidden_units), l3 = L.Linear(num_of_hidden_units, num_of_output_units), ) # def __call__(self, x, t): """順伝播による誤差計算 Args: x (a variable of variables of floats): 入力ミニバッチ t (a variable of variables of int): 入力ミニバッチに対する教師出力 Returns: loss (float): 誤差(損失) """ y = self.forward(x) loss = F.softmax_cross_entropy(y, t) # softmax function & cross entropy error function return loss # def forward(self, x): """順伝播 Args: x (a variable of variables of floats): 入力ミニバッチ Returns: y (a variable of variables of floats): 入力ミニバッチに対する出力 """ h1 = F.relu(self.l1(x)) # Rectified linear function h2 = F.relu(self.l2(h1)) # Rectified linear function y = self.l3(h2) # Identity mapping return y # def dataset(): """MNISTデータセット設定 Returns: train_data_i (a list of lists of floats): 訓練データの入力配列 train_data_t (a list of ints): 訓練データの教師配列 test_data_i (a list of lists of floats): テストデータの入力配列 test_data_t (a list of ints): テストデータの教師配列 size_of_train_data (int): 訓練データ数 size_of_test_data (int): テストデータ数 """ train_data, test_data = datasets.get_mnist() size_of_train_data = len(train_data) size_of_test_data = len(test_data) train_data_i = [train_data[i][0] for i in range(size_of_train_data)] train_data_t = [train_data[i][1] for i in range(size_of_train_data)] print(train_data[0][0].dtype) print(train_data[0][1].dtype) test_data_i = [test_data[i][0] for i in range(size_of_test_data)] test_data_t = [test_data[i][1] for i in range(size_of_test_data)] return train_data_i, train_data_t, test_data_i, test_data_t, size_of_train_data, size_of_test_data # def learn(model, optimizer, num_of_epoch, size_of_minibatch, train_data_i, train_data_t, size_of_train_data, xp): """学習 Args: model (Fnn): FNNモデル optimizer (Optimizer): オプティマイザ num_of_epoch (int): エポック数 size_of_minibatch (int): ミニバッチサイズ train_data_i (a list of lists of floats): 訓練データの入力配列 train_data_t (a list of ints): 訓練データの教師配列 size_of_train_data (int): 訓練データ数 xp (numpy or cuda.cupy): numpy or cuda.cupy """ for epoch in range(num_of_epoch): print(' epoch='+str(epoch), end=' ') indexes = np.random.permutation(size_of_train_data) sum_loss = 0 for i in range(0, size_of_train_data, size_of_minibatch): x = Variable(xp.array([train_data_i[ind] for ind in indexes[i:i+size_of_minibatch]], dtype=xp.float32)) t = Variable(xp.array([train_data_t[ind] for ind in indexes[i:i+size_of_minibatch]], dtype=xp.int32)) model.zerograds() loss = model(x, t) loss.backward() optimizer.update() sum_loss += loss.data * len(x.data) print(', mean_loss='+str(sum_loss/size_of_train_data)) # def test(model, size_of_minibatch, test_data_i, test_data_t, size_of_test_data, xp): """テスト Args: model (Fnn): FNNモデル size_of_minibatch (int): ミニバッチサイズ test_data_i (a list of lists of floats): テストデータの入力配列 test_data_t (a list of ints): テストデータの教師配列 size_of_test_data (int): テストデータ数 xp (numpy or cuda.cupy): numpy or cuda.cupy Returns: mean_loss (float): 平均誤差(損失) accuracy (float): アキュラシー """ sum_loss, sum_accuracy = 0, 0 for i in range(0, size_of_test_data, size_of_minibatch): x = Variable(xp.array(test_data_i[i:i+size_of_minibatch], dtype=xp.float32)) t = Variable(xp.array(test_data_t[i:i+size_of_minibatch], dtype=xp.int32)) with chainer.no_backprop_mode(): y = model.forward(x) sum_loss += F.softmax_cross_entropy(y, t).data * len(x.data) sum_accuracy += F.accuracy(y, t).data * len(x.data) mean_loss = sum_loss/size_of_test_data accuracy = sum_accuracy/size_of_test_data return mean_loss, accuracy # if __name__ == '__main__': # パラメータ設定 num_of_input_units = 784 num_of_hidden_units = 1000 num_of_output_units = 10 num_of_epoch = 20 size_of_minibatch = 100 use_gpu = True # GPUの準備 if use_gpu: cuda.get_device(0).use() xp = cuda.cupy else: xp = np # 訓練データとテストデータの準備 print('MNIST dataset preparation') train_data_i, train_data_t, test_data_i, test_data_t, size_of_train_data, size_of_test_data = dataset() print(' size of train data = '+str(size_of_train_data)) print(' size of test data = '+str(size_of_test_data)) # モデルの作成 print('Model configuration') model = Fnn(num_of_input_units, num_of_hidden_units, num_of_output_units) if use_gpu: model.to_gpu() optimizer = optimizers.SGD() optimizer.setup(model) # 学習 print('Learning') start_time = time.time() learn(model, optimizer, num_of_epoch, size_of_minibatch, train_data_i, train_data_t, size_of_train_data, xp) elapsed_time = time.time() - start_time print(' elapsed time for learning: {} [sec]'.format(elapsed_time)) # テスト print('Test') mean_loss, accuracy = test(model, size_of_minibatch, test_data_i, test_data_t, size_of_test_data, xp) print(' mean_loss='+str(mean_loss)+'\n accuracy='+str(accuracy))

こちらになります
GPUの準備と書かれているところのすぐ上にあるuse_gpu = TrueとなっているところをFalseと直すとCPUで処理されます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wakame

2018/06/14 08:48

cupyのドキュメントを見る限りcuda 9.2は対応しているようには見えません。
guest

回答3

0

この内容を見るとサポートしていそうです。
https://www.geforce.com/hardware/technology/cuda/supported-gpus

いったん、cuda関連のモジュールをアンインストールして、マニュアルの記載通りにすればうまくいくかもしれません

投稿2018/06/13 12:08

編集2018/06/13 12:27
R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SioRyu

2018/06/16 06:01

cuda関連を全部アンインストールした後に再びcuda9.2をインストールしようとすると今度は Nvidiaインストーラーが失敗しました と表示されます これの治し方もいろいろ調べて試しているのですがなかなか治ってくれません。 もし可能であれば教えていただけると嬉しいです ちなみに、9.0をインストールしようとしても同じように Nvidiaインストーラーが失敗しました と表示されます
guest

0

自己解決

回答してくださったR.Shigemoriさんの言う通りcuda関連のソフトをすべてアンインストールするというのは部分的にあっていました
実際に解決した手順は
NVidia関連のドライバーすべてのアンインストールでした。
すべてのすでに入っているドライバー(グラフィックスドライバーも含めて)
すべてアンインストール後パソコンの再起動が必要になります。
その際一度再起動してみると、原因はわからないのですが、また三つほどNVIDIAのがアンインストールできていないのがwindows10の場合設定→アプリと機能のところで確認できます。
もう一度すべてアンインストールしますが、今度はすぐには再起動せずにcuda9.0のインストールを始めると今度はうまくいきました。
cuda9.0のインストール完了後
再びプログラムを起動すると今度はまた違うエラーが出ますがこのエラーはcudnn7.0をインストールすることで解決します

投稿2018/06/21 11:05

SioRyu

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

エラーメッセージによると「cupyというモジュールがない」ためです。cupyはcuda上でnumpyの処理を行うモジュールでおそらくchainerが裏側で使用しているのではないでしょうか。
よって、このcupyを自身の環境に合わせてインストールすれば解決するかと思います。エラーメッセージによると、「https://github.com/chainer/chainer#installationを参照」となっているので、詳しいことはそちらを見るといいかと思います。

投稿2018/06/05 20:40

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SioRyu

2018/06/13 10:45

いろいろと試したのですがどれもダメで、試しにcupyをインストールしようとすると ----- 'cupy==4.1.0' をインストールしています ----- Collecting cupy==4.1.0 Using cached https://files.pythonhosted.org/packages/8f/89/bba5b25c8139f483dd3e3bdafb95e84b6cb1f9babbcdd230c7231c395171/cupy-4.1.0.tar.gz Complete output from command python setup.py egg_info: Options: {'package_name': 'cupy', 'long_description': None, 'wheel_libs': [], 'no_rpath': False, 'profile': False, 'linetrace': False, 'annotate': False, 'no_cuda': False} ************************************************** *** WARNING: nvcc not in path. *** WARNING: Please set path to nvcc. ************************************************** -------- Configuring Module: cuda -------- a.cpp C:\Users\frank\AppData\Local\Temp\tmpwydqhw_2\a.cpp(1): fatal error C1083: include ファイルを開けません。'cublas_v2.h':No such file or directory command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\cl.exe' failed with exit status 2 ************************************************************ * CuPy Configuration Summary * ************************************************************ Build Environment: Include directories: [] Library directories: [] nvcc command : (not found) Environment Variables: CFLAGS : (none) LDFLAGS : (none) LIBRARY_PATH : (none) CUDA_PATH : (none) NVTOOLSEXT_PATH : C:\Program Files\NVIDIA Corporation\NvToolsExt\ NVCC : (none) Modules: cuda : No -> Include files not found: ['cublas_v2.h', 'cuda.h', 'cuda_profiler_api.h', 'cuda_runtime.h', 'cufft.h', 'curand.h', 'cusparse.h', 'nvrtc.h'] -> Check your CFLAGS environment variable. ERROR: CUDA could not be found on your system. Please refer to the Installation Guide for details: https://docs-cupy.chainer.org/en/stable/install.html ************************************************************ Traceback (most recent call last): File "<string>", line 1, in <module> File "C:\Users\frank\AppData\Local\Temp\pip-install-e59378vm\cupy\setup.py", line 65, in <module> ext_modules = cupy_setup_build.get_ext_modules() File "C:\Users\frank\AppData\Local\Temp\pip-install-e59378vm\cupy\cupy_setup_build.py", line 560, in get_ext_modules extensions = make_extensions(arg_options, compiler, use_cython) File "C:\Users\frank\AppData\Local\Temp\pip-install-e59378vm\cupy\cupy_setup_build.py", line 373, in make_extensions raise Exception('Your CUDA environment is invalid. ' Exception: Your CUDA environment is invalid. Please check above error log. ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in C:\Users\frank\AppData\Local\Temp\pip-install-e59378vm\cupy\ ----- 'cupy==4.1.0' をインストールできませんでした ----- と出ます。 今度は試しにCUDAを9.0を入れようとするとインストーラーが失敗します。 いろいろ調べてみるとcudaに対応しているGPUのリストの中に今使用している1050tiが見当たりません。 1050tiではCUDA使えないのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問