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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

801閲覧

PythonのDeeplearningの Error解決

nangoku

総合スコア3

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/08/17 14:31

前提・実現したいこと

Errorメッセージがでて困っています
別に作成したプログラムでは通ったのですがこのプログラムだとIndexが文字列では駄目だと言われます
どこに問題があるかわかる方お願いします。

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

Traceback (most recent call last):
File "76.py", line 50, in <module>
y = predict( x[i], network )
File "76.py", line 31, in predict
W1, W2, W3 = network['W1'], network['W2'], network['W3']
IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None)

該当のソースコード

import numpy as np
import sys, os
sys.path.append(os.pardir)
from dataset.mnist import load_mnist
from PIL import Image
import pickle

def predict( network, x): # 予測する
W1, W2, W3 = network['W1'], network['W2'], network['W3']
b1, b2, b3 = network['b1'], network['b2'], network['b3']

a1 = np.dot(x, W1)+b1 z1 = sigmoid(a1) a2 = np.dot(z1, W2)+b2 z2 = sigmoid(a2) a3 = np.dot(z2, W3)+b3 z3 = sigmoid(a3) y = softmax(z3) return y

def sigmoid(x):
y = 1/(1+exp(-x))
return y

def softmax(x):
c = np.max(x)
np_exp = np.exp(x-c)
np_sum = np.sum(np_exp)
y = np_exp/np_sum
return y

def get_data():
(x_train, t_train), (x_test, t_test) =
load_mnist(normalize=True, flatten=True, one_hot_label=False)
return x_test, t_test

def init_network():
with open('sample_weight.pkl', 'rb') as f:
network = pickle.load(f)
return network

accuracy_cnt = 0 #正確性

x, y = get_data()
network = init_network()

for i in range( len(x)):
y = predict( x[i], network )
p = np.argmax(y)

if p == t[i] : accuracy_cnt += 1

print('Accuracy:' + str(float(accuracy_cnt)/len(x)))

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

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

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

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

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

meg_

2019/08/17 14:33

プログラムは「コードの挿入」にて記入お願いします。(インデントが分かりませんので)
nangoku

2019/08/17 14:46

失礼しました 以後、コードの挿入にて記入いたします。
guest

回答1

0

ベストアンサー

def predict( network, x): # 予測する

y = predict( x[i], network )

関数の定義を見ると、実引数の順番が逆ではないでしょうか?

投稿2019/08/17 14:40

meg_

総合スコア10577

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

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

nangoku

2019/08/17 14:47

感謝感謝 助かりました、おかげさまで解決できました(*^。^*)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問