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

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

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

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python

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

Q&A

解決済

2回答

6116閲覧

pytorchのimportが正しくされない。

ygo_hustler

総合スコア2

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Python

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

0グッド

0クリップ

投稿2021/10/05 19:31

編集2021/10/05 23:21
pythonでpytorchを用い音声の機械学習をおこなおうと考えておりました。 ソースコードを実行する際に、正しくモジュールをimportできない旨がエラーメッセージで表示されたのですが、解決策がわかりません。教えていただけるとありがたいです。 ### 出力結果及び・エラーメッセージ runfile('C:/Users/j20703dn/Desktop/AELAB/graduationresearch/work/python_asr-main/04dnn_hmm/my_dataset.py', wdir='C:/Users/j20703dn/Desktop/AELAB/graduationresearch/work/python_asr-main/04dnn_hmm') Reloaded modules: hmmfunc Traceback (most recent call last): File "C:\Users\j20703dn\Desktop\AELAB\graduationresearch\work\python_asr-main\04dnn_hmm\my_dataset.py", line 8, in <module> from torch.utils.data import Dataset File "C:\Users\j20703dn\anaconda3\lib\site-packages\torch\utils\__init__.py", line 4, in <module> from .throughput_benchmark import ThroughputBenchmark File "C:\Users\j20703dn\anaconda3\lib\site-packages\torch\utils\throughput_benchmark.py", line 2, in <module> import torch._C ImportError: DLL load failed while importing _C: 指定されたモジュールが見つかりません。 ```### 該当のソースコード ```python from torch.utils.data import Dataset 数値演算用モジュール(numpy)をインポート import numpy as np sysモジュールをインポート import sys class SequenceDataset(Dataset): ''' ミニバッチデータを作成するクラス torch.utils.data.Datasetクラスを継承し, 以下の関数を定義する __len__: 総サンプル数を出力する関数 __getitem__: 1サンプルのデータを出力する関数 feat_scp: 特徴量リストファイル label_scp: ラベルファイル feat_mean: 特徴量の平均値ベクトル feat_std: 特徴量の次元毎の標準偏差を並べたベクトル pad_index: バッチ化の際にフレーム数を合わせる ためにpaddingする整数値 splice: 前後(splice)フレームを特徴量を結合する splice=1とすると,前後1フレーム分結合 するので次元数は3倍になる. splice=0の場合は何もしない ''' def __init__(self, feat_scp, label_scp, feat_mean, feat_std, pad_index, splice=0): 発話の数 self.num_utts = 0 各発話のID self.id_list = [] 各発話の特徴量ファイルへのパスを記したリスト self.feat_list = [] 各発話の特徴量フレーム数を記したリスト self.feat_len_list = [] 特徴量の平均値ベクトル self.feat_mean = feat_mean 特徴量の標準偏差ベクトル self.feat_std = feat_std 標準偏差のフロアリング (0で割ることが発生しないようにするため) self.feat_std[self.feat_std<1E-10] = 1E-10 特徴量の次元数 self.feat_dim = \ np.size(self.feat_mean) 各発話のラベル self.label_list = [] 各発話のラベルの長さを記したリスト self.label_len_list = [] フレーム数の最大値 self.max_feat_len = 0 ラベル長の最大値 self.max_label_len = 0 フレーム埋めに用いる整数値 self.pad_index = pad_index splice:前後nフレームの特徴量を結合 self.splice = splice 特徴量リスト,ラベルを1行ずつ 読み込みながら情報を取得する with open(feat_scp, mode='r') as file_f, \ open(label_scp, mode='r') as file_l: for (line_feats, line_label) in zip(file_f, file_l): 各行をスペースで区切り, リスト型の変数にする parts_feats = line_feats.split() parts_label = line_label.split() 発話ID(partsの0番目の要素)が特徴量と ラベルで一致していなければエラー if parts_feats[0] != parts_label[0]: sys.stderr.write('IDs of feat and '\ 'label do not match.\n') exit(1) 発話IDをリストに追加 self.id_list.append(parts_feats[0]) 特徴量ファイルのパスをリストに追加 self.feat_list.append(parts_feats[1]) フレーム数をリストに追加 feat_len = np.int64(parts_feats[2]) self.feat_len_list.append(feat_len) ラベル(番号で記載)をint型の  numpy arrayに変換 label = np.int64(parts_label[1:]) ラベルリストに追加 self.label_list.append(label) ラベルの長さを追加 self.label_len_list.append(len(label)) 発話数をカウント self.num_utts += 1 フレーム数の最大値を得る self.max_feat_len = \ np.max(self.feat_len_list) ラベル長の最大値を得る self.max_label_len = \ np.max(self.label_len_list) ラベルデータの長さを最大フレーム長に 合わせるため,pad_indexの値で埋める for n in range(self.num_utts): 埋めるフレームの数 = 最大フレーム数 - 自分のフレーム数 pad_len = self.max_label_len \ - self.label_len_list[n] pad_indexの値で埋める self.label_list[n] = \ np.pad(self.label_list[n], [0, pad_len], mode='constant', constant_values=self.pad_index) def __len__(self): ''' 学習データの総サンプル数を返す関数 本実装では発話単位でバッチを作成するため, 総サンプル数=発話数である. ''' return self.num_utts def __getitem__(self, idx): ''' サンプルデータを返す関数 本実装では発話単位でバッチを作成するため, idx=発話番号である. ''' 特徴量系列のフレーム数 feat_len = self.feat_len_list[idx] ラベルの長さ label_len = self.label_len_list[idx] 特徴量データを特徴量ファイルから読み込む feat = np.fromfile(self.feat_list[idx], dtype=np.float32) フレーム数 x 次元数の配列に変形 feat = feat.reshape(-1, self.feat_dim) 平均と標準偏差を使って正規化(標準化)を行う feat = (feat - self.feat_mean) / self.feat_std splicing: 前後 n フレームの特徴量を結合する org_feat = feat.copy() for n in range(-self.splice, self.splice+1): 元々の特徴量を n フレームずらす tmp = np.roll(org_feat, n, axis=0) if n < 0: 前にずらした場合は 終端nフレームを0にする tmp[n:] = 0 elif n > 0: 後ろにずらした場合は 始端nフレームを0にする tmp[:n] = 0 else: continue ずらした特徴量を次元方向に 結合する feat = np.hstack([feat,tmp]) 特徴量データのフレーム数を最大フレーム数に 合わせるため,0で埋める pad_len = self.max_feat_len - feat_len feat = np.pad(feat, [(0, pad_len), (0, 0)], mode='constant', constant_values=0) ラベル label = self.label_list[idx] 発話ID utt_id = self.id_list[idx] 特徴量,ラベル,フレーム数, ラベル長,発話IDを返す return (feat, label, feat_len, label_len, utt_id)

試したこと

pipを用いたpytorchのアンインストール及び再インストール

補足情報(FW/ツールのバージョンなど)

エディタはspyderを用いており、OSはwindowsを使用しております。

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

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

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

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

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

y_waiwai

2021/10/05 22:48

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
ygo_hustler

2021/10/05 23:27

コメントありがとうございます。修正させていただきました。
jbpb0

2021/10/06 02:11 編集

自分で「torch」という名前のディレクトリとか、ファイル名が「torch.py」というファイルとか、作ってませんか?
ygo_hustler

2021/10/06 02:05

いや、作ってはおりません。
jbpb0

2021/10/06 02:11

コードの先頭に下記を追加したら、何て表示されますか? import torch print(torch.__path__) print(torch.__file__)
ygo_hustler

2021/10/06 02:17

_NamespacePath(['C:\\Users\\ユーザ名\\anaconda3\\lib\\site-packages\\torch']) None このように表示されます。
jbpb0

2021/10/06 02:25

あれ? C:\Users\j20703dn\anaconda3\lib\site-packages\torch に「__init__.py」というファイル有りますか?
ygo_hustler

2021/10/06 02:26 編集

存在しています。
jbpb0

2021/10/06 02:31

import torch print(torch.__path__) print(torch.__file__) の結果は、下記のようになるはずなのです ['C:\\Users\\j20703dn\\anaconda3\\lib\\site-packages\\torch’] C:\Users\j20703dn\anaconda3\lib\site-packages\torch\__init__.py (一つ目には、「_NamespacePath()」は付きません)
ygo_hustler

2021/10/06 02:33

これはpassなどの問題になるのでしょうか。それともインストール時点での問題になるのでしょうか。
jbpb0

2021/10/06 02:42

from torch.utils.data import Dataset で、 C:\Users\j20703dn\anaconda3\lib\site-packages\torch\utils\__init__.py を参照してるので、パスは大丈夫だと思うのですが、念の為に下記を教えてください > pipを用いたpytorchのアンインストール及び再インストール と同じ状態で pip show torch を実行して、「Location:」で始まる行に何て書かれてるか > 正しくモジュールをimportできない旨がエラーメッセージで表示された と同じ状態でPythonで下記コードを実行した場合の結果 import sys import pprint pprint.pprint(sys.path)
ygo_hustler

2021/10/06 02:54

pip show torchの実行結果は下記のとおりです。 Name: torch Version: 1.9.1+cu102 Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration Home-page: https://pytorch.org/ Author: PyTorch Team Author-email: packages@pytorch.org License: BSD-3 Location: c:\users\j20703dn\anaconda3\lib\site-packages Requires: typing-extensions Required-by: torchvision, torchaudio また、import sys以下の実行結果も下記の通りになります。 ['C:\\Users\\j20703dn\\anaconda3\\python38.zip', 'C:\\Users\\j20703dn\\anaconda3\\DLLs', 'C:\\Users\\j20703dn\\anaconda3\\lib', 'C:\\Users\\j20703dn\\anaconda3', '', 'C:\\Users\\j20703dn\\anaconda3\\lib\\site-packages', 'C:\\Users\\j20703dn\\anaconda3\\lib\\site-packages\\locket-0.2.1-py3.8.egg', 'C:\\Users\\j20703dn\\anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\j20703dn\\anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\j20703dn\\anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Users\\j20703dn\\anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\j20703dn\\.ipython']
jbpb0

2021/10/06 03:12

大丈夫だと思います 何でそれで、 import torch で C:\Users\j20703dn\anaconda3\lib\site-packages\torch\__init__.py が読み込まれないのかが謎です pipでのインストールは、 https://pytorch.org/get-started/locally/ に書かれてる手順で、普通にしましたよね? 他のPythonに入れたのを、「torch」ディレクトリごと持ってきた、とかはしてませんよね? あと、Jupyterを起動した時に、コマンドプロンプトも起動してると思うのですが、Jupyterで質問のエラーが出た時に、そのコマンドプロンプトには何か他に表示されてませんでしょうか?
ygo_hustler

2021/10/06 03:16

pipでのインストールはしっかりリンク先の方法で行っております。また、エディタはspyderを使用しています。今一度実行時のメッセージを下に書かせていただきます。 runfile('C:/Users/j20703dn/Desktop/AELAB/graduationresearch/work/python_asr-main/04dnn_hmm/02_train_dnn.py', wdir='C:/Users/j20703dn/Desktop/AELAB/graduationresearch/work/python_asr-main/04dnn_hmm') Traceback (most recent call last): File "C:\Users\j20703dn\Desktop\AELAB\graduationresearch\work\python_asr-main\04dnn_hmm\02_train_dnn.py", line 9, in <module> import torch.nn as nn File "C:\Users\j20703dn\anaconda3\lib\site-packages\torch\nn\__init__.py", line 1, in <module> from .modules import * # noqa: F403 File "C:\Users\j20703dn\anaconda3\lib\site-packages\torch\nn\modules\__init__.py", line 1, in <module> from .module import Module File "C:\Users\j20703dn\anaconda3\lib\site-packages\torch\nn\modules\module.py", line 7, in <module> from ..parameter import Parameter File "C:\Users\j20703dn\anaconda3\lib\site-packages\torch\nn\parameter.py", line 2, in <module> from torch._C import _disabled_torch_function_impl ImportError: cannot import name '_disabled_torch_function_impl' from 'torch._C' (unknown location)
jbpb0

2021/10/06 05:02

> from torch._C import _disabled_torch_function_impl ImportError: cannot import name '_disabled_torch_function_impl' from 'torch._C' (unknown location) 質問のエラーと同じで、「torch._C」のインポートができてませんね パスに問題は無いようなので、インストールがうまくいってない可能性がありますが、既に > pipを用いたpytorchのアンインストール及び再インストール をしてるので、それをもう一度やっても状況は変わらないかもしれません (ダメ元でやってみる価値はありますが) GPU版じゃなくて、一旦CPU版をインストールしてみたら、いかがでしょうか?? CPU版だと同じコードでエラー出ないなら (エラー出たとしても違うエラーなら)、CUDA関係のどこかに問題がある可能性があります
ygo_hustler

2021/10/06 05:34

CPU版でも同じエラーを吐かれてしまいました。
jbpb0

2021/10/06 05:37

Anacondaなので、pipではなくcondaで入れてみたら、いかがでしょうか?? pipで既に入れてるものを、まずpipでアンインストールしてから
ygo_hustler

2021/10/06 05:38

私も先ほどそれを思いインストールしているところになります。終わり次第こちらに書かせていただきます。
ygo_hustler

2021/10/06 05:55

Preparing transaction: done Verifying transaction: failed RemoveError: 'requests' is a dependency of conda and cannot be removed from conda's operating environment. condaでインストールしようとしたところ、このようなエラーメッセージを吐かれてしまいました
ygo_hustler

2021/10/06 06:11

そうです。cmdでこのコマンドを実行しようとしたらこうなりました。
jbpb0

2021/10/06 06:17 編集

そういえば、以前そうなった時に、これやったのを思い出しました https://qiita.com/seal_qiita/items/57df08fb3effc2d467d3 今でもできるのかな?? ただし、当方ではそれやったら直りましたが、上記Webページにも書かれてますように、それが正しい対処かは分かりません なので、実施する場合は自己責任でお願いします
ygo_hustler

2021/10/06 06:34

この方法ですべて解決することが出来ました!!! ありがとうございます。ベストアンサーにさせていただきたいのですが、回答の方に投稿願えますか?
guest

回答2

0

ベストアンサー

import torch._C

ImportError: DLL load failed while importing _C: 指定されたモジュールが見つかりません。

PyTorchのインストールがうまくいってない可能性があります

pipを用いたpytorchのアンインストール及び再インストール

Anacondaなので、pipではなくcondaで入れてみてください
pipで既に入れてるものを、まずpipでアンインストールしてから
START LOCALLY

投稿2021/10/06 06:48

jbpb0

総合スコア7651

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

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

0

投稿2021/10/05 23:55

y_waiwai

総合スコア87774

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

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

ygo_hustler

2021/10/06 00:02

pytorchの公式ページよりすでにpipを用いてインストールは済んでおります。
y_waiwai

2021/10/06 00:11

ならそれをちゃんと質問文に書いておこう。 で、そのpipコマンドはあなたは使おうとしたpythonのpipコマンドでしょうか。 あるあるなのが、pythonが複数入っていて、違うほうのpythonに入れてしまって動かない、ということがありますが
ygo_hustler

2021/10/06 00:15

詳細な記載が出来ておらず申し訳ございませんでした。インストールしたのはきちんと使用するpython下になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問