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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

0回答

1210閲覧

RNN:テストデータの分析がうまくできない

corn

総合スコア10

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/02/28 04:19

現在MATLABでRNNモデルを作成したものをPythonに移行しています.
具体的には音のスペクトログラムデータを学習分析するものであり,現在はPythonでRNNモデルの作成を行っています.
しかし,データ学習し終えた後にテストデータで分類評価を行う際に,2値分類において予測値がすべて同一になってしまいます.

Python

1import scipy 2from keras.optimizers import RMSprop 3from keras import Sequential, layers 4import numpy as np 5from scipy.io import whosmat 6 7## matファイルからスペクトログラムを取得 8matfilename='trainfile.mat' 9matfile = scipy.io.loadmat(matfilename, mat_dtype=True, squeeze_me=False) 10matinfo = whosmat(matfilename) 11spec=matfile["XX"] # pythonの変数を格納(shape:(86400,31,69),dtype:float32) 12 13## RNN学習用正規化処理 14spectmp=np.ravel(spec) # 1次元化 15specmean=np.mean(spectmp) # 平均 16specstd=np.std(spectmp,ddof=1) # 標準偏差(n-1法) 17spectrain=np.reshape((spectmp-specmean)/specstd,[matinfo[0][1][0],-1,1])# 平均化処理を行い,(86400,31*69)の次元で戻す 18 19## ラベル付け 20labeltrain=# shape:(86400,2), dtype:float32の形式で0,1が入力されている 21 22## モデルの定義 23model = Sequential() 24model.add(layers.GRU(100, input_shape=[2139,1]))# input_shapeは31*69=2139となっている 25model.add(layers.Dense(2, activation='sigmoid')) 26 27model.compile(optimizer=RMSprop(), loss='binary_crossentropy', metrics=['accuracy']) 28model.fit(spectrain, labeltrain, batch_size=200, epochs=2, verbose=1) 29model.save('model.h5') 30 31# テスト 32matfilename='testfile.mat' 33matfiletest = scipy.io.loadmat(matfilename, mat_dtype=True, squeeze_me=False) 34matinfotest = whosmat(matfilename) 35spectmp2=matfiletest["XXX"]# pythonの変数を格納(shape:(3600,31,69),dtype:float32) 36spectest=np.reshape((np.ravel(spectmp2)-specmean)/specstd,[matinfotest[0][1][0],-1,1])# 平均化処理を行い,(3600,31*69)の次元で戻す 37new_pos = model.predict(spectest, batch_size=200, verbose=1)

new_posのところでの分類結果が一方のラベルに偏ってしまって困っています.
Python:3.7 by Anaconda
Keras:2.2.4
numpy:1.18.1
scipy:1.3.2

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問