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

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

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

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Q&A

0回答

1118閲覧

anaconda3のSpyderで困ってます。

hanya

総合スコア10

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

0グッド

0クリップ

投稿2019/01/08 11:37

###していること
anaconda3のSpyderで画像による手形状分類を作っています。
###問題
以上を実行すると以下のようなエラーが出てしまいます。

###ソースコード

import os import sys import glob import numpy as np from skimage import io from sklearn import datasets IMAGE_SIZE = 40 COLOR_BYTE = 3 CATEGORY_NUM = 6 ## ラベル名(0~)を付けたディレクトリに分類されたイメージファイルを読み込む ## 入力パスはラベル名の上位のディレクトリ def load_handimage(path): # ファイル一覧を取得 files = glob.glob(os.path.join(path, '*/*.png')) # イメージとラベル領域を確保 images = np.ndarray((len(files), IMAGE_SIZE, IMAGE_SIZE, COLOR_BYTE), dtype = np.uint8) labels = np.ndarray(len(files), dtype=np.int) # イメージとラベルを読み込み for idx, file in enumerate(files): # イメージ読み込み image = io.imread(file) images[idx] = image # ディレクトリ名よりラベルを取得 label = os.path.split(os.path.dirname(file))[-1] labels[idx] = int(label) # scikit-learn の他のデータセットの形式に合わせる flat_data = images.reshape((-1, IMAGE_SIZE * IMAGE_SIZE * COLOR_BYTE)) images = flat_data.view() return datasets.base.Bunch(data=flat_data, target=labels.astype(np.int), target_names=np.arange(CATEGORY_NUM), images=images, DESCR=None) ##################################### from sklearn import svm, metrics ## usage: ## python classify_handsign_1.py <n> <dir_1> <dir_2> ... <dir_m> ## n テスト用データディレクトリ数 ## dir_1 データディレクトリ1 ## dir_m データディレクトリm if __name__ == '__main__': argvs = sys.argv # 評価用ディレクトリ数の取得 paths_for_test = argvs[2:2+int(argvs[1])] paths_for_train = argvs[2+int(argvs[1]):] print('test ', paths_for_test) print('train', paths_for_train) # 評価データの読み込み data = [] label = [] for i in range(len(paths_for_test)): path = paths_for_test[i] d = load_handimage(path) data.append(d.data) label.append(d.target) test_data = np.concatenate(data) test_label = np.concatenate(label) # 学習データの読み込み data = [] label = [] for i in range(len(paths_for_train)): path = paths_for_train[i] d = load_handimage(path) data.append(d.data) label.append(d.target) train_data = np.concatenate(data) train_label = np.concatenate(label) # 手法:線形SVM classifier = svm.LinearSVC() # 学習 classifier.fit(train_data, train_label) # テスト predicted = classifier.predict(test_data) # 結果表示 print("Accuracy:\n%s" % metrics.accuracy_score(test_label, predicted)) コード

発生している問題・エラーメッセージ

paths_for_test = argvs[2:2+int(argvs[1])]

IndexError: list index out of range

質問

 ①どのように変えればエラーは消えるでしょうか?
②以下のソースコードで実行すると結果が出るのですが、m21の部分を他のm23などに変更すると結果が変わってしまいます。これはなぜでしょうか?

run classify_handsign_1.py 1 ./data/m20 ./data/m21 ./data/m23 ./data/m24 ./data/m25 ./data/m26 ./data/m27 ./data/m28 ./data/m29

全く分からないので分かる方お助けお願い致します。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問