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

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

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

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

解決済

IndexError: index is out of bounds for axis with size の治し方がわかりません

iLia
iLia

総合スコア0

Python

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

1回答

0評価

0クリップ

40閲覧

投稿2019/05/05 12:27

編集2022/01/12 10:58
# -*- coding: utf-8 -*- import keras from keras.datasets import mnist import matplotlib from matplotlib import pyplot import numpy as np from sklearn import datasets from sklearn.model_selection import cross_val_score as crv def sigmoid(x): return 1 / (1 + np.exp(-x)) def softmax(x): expX = np.exp(x) return expX / np.sum(expX) def cross_entropy_error(y,t): delta = 1e-7 batch_size = y.shape[0] idx= np.arange(batch_size) return -np.sum(np.log(y[idx,t]+delta)) / batch_size def gradient(f,x): if x.ndim == 1: return gradient_sub(f,x) else: grad = np.zeros_like(x) for index, xx in enumerate(x): grad[index] = gradient_sub(f,xx) return grad def gradient_sub(f,x): h = 1e-4 grad = np.zeros_like(x) for i in range(x.size): val = x[i] x[i] = val + h fx1 = f(x) x[i] = val - h fx2 = f(x) grad[i] = (fx1 - fx2) / (2*h) x[i] = val return grad class SampleNetwork: def __init__(self): input_size = 64 hidden_size = 50 output_size = 10 self.params = {} self.params["w0"] = 0.01 * np.random.randn(input_size,hidden_size) self.params["w1"] = 0.01 * np.random.randn(hidden_size,output_size) self.params["b0"] = np.zeros(hidden_size) self.params["b1"] = np.zeros(output_size) self.learning_rate = 0.1 def predict(self,x): a0 = np.dot(x,self.params["w0"]) + self.params["b0"] z0 = sigmoid(a0) a1 = np.dot(z0,self.params["w1"]) + self.params["b1"] y = softmax(a1) return y def update_params(self,x,t): loss_W = lambda W: self.loss(x,t) for key in self.params.keys(): grad = gradient(loss_W, self.params[key]) self.params[key] -= self.learning_rate*grad def loss(self,x,t): y = self.predict(x) return cross_entropy_error(y,t) def accurary(self,x,t): y = self.predict(x) y = np.argmax(y,axis=1) acc = np.sum(y==t) / float(x.shape[0]) return acc digits = datasets.load_digits() X = digits.data T = digits.target (train_X, test_X), (train_T,test_T ) = mnist.load_data() network = SampleNetwork() batch_size = 100 iter_num = 300 train_size = train_X.shape[0] erpoch_size = max(train_size//batch_size,1) loss_list = [] train_accurary_list = [] test_accurary_list = [] for index in range(iter_num): batch_choice = np.random.choice(train_size,batch_size) x_batch = train_X[batch_choice] t_batch = train_T[batch_choice] network.update_params(x_batch,t_batch) loss = network.loss(x_batch,t_batch) loss_list.append(loss) if (index % erpoch_size == 0): train_accurary = network.accurary(train_X,train_T) test_accurary = network.accurary(test_X,test_T) train_accurary_list.append(train_accurary) test_accurary_list.append(test_accurary) pyplot.figure(figsize=(10,7)) pyplot.subplot(2,2,1) pyplot.plot(np.arange(len(loss_list)),loss_list) pyplot.xlabel("iteration") pyplot.title("Cross Entropy Error") pyplot.subplot(2,2,2) pyplot.plot(np.arange(0,len(train_accurary_list),1),train_accurary_list,"b") pyplot.plot(np.arange(0,len(test_accurary_list),1),test_accurary_list,"ro") pyplot.xlabel("iteration(epoch)") pyplot.title("Accuary") pyplot.legend(("train","test"),loc = "lowrer right") pyplot.tight_layout()

というコードに対し、

IndexError: index 44061 is out of bounds for axis 0 with size 10000

と出てしまいます。
どれが44061でどれが10000なのかがわからないです
わかる方いましたらご教授お願いします

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

otn
otn

2019/05/05 12:35

エラーメッセージの中に、行番号があるはずです。 よく分からなければ、全文を質問に追記してください。
iLia
iLia

2019/05/05 12:47

ご指摘ありがとうございます。 全文貼りました。
otn
otn

2019/05/05 12:51

いやいや、エラーメッセージの話です。
otn
otn

2019/05/05 12:53

省略せずに書き直すと、 エラーメッセージの中に、行番号があるはずです。 どれが行番号なのかよく分からなければ、エラーメッセージ全文を質問に追記してください。
iLia
iLia

2019/05/05 13:05

すみません\.\.\.初心者で\.\.\.

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python

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