🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Keras

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

Python 3.x

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

Python

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

Q&A

解決済

1回答

2327閲覧

Kerasを使ってDeeplearningがしたい エラーが出て困ってます

Dpulex

総合スコア9

Keras

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

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2019/09/18 08:29

編集2019/09/18 09:31

前提・実現したいこと

Pythonを用いてDeeplearningを行いたいです。
ログを用いて異常検知を行うことを目的に行なっているのですが、エラーが出て前に進めない状況です。
dataには列数が1106,行数が151186ある行列が入っています。
それをX_train, X_test, Y_train, Y_testに分けていきます。
これを実装するとうまくいかずエラーが出てしまう現状です。
■■な機能を実装中に以下のエラーメッセージが発生しました。

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

エラーメッセージ Traceback (most recent call last): File "lstm_tokutyou.py", line 55, in <module> model.add(Dense(n_out, kernel_initializer=weight_variable)) File "/usr/local/lib/python3.7/site-packages/keras/engine/sequential.py", line 182, in add output_tensor = layer(self.outputs[0]) File "/usr/local/lib/python3.7/site-packages/keras/engine/base_layer.py", line 463, in __call__ self.build(unpack_singleton(input_shapes)) File "/usr/local/lib/python3.7/site-packages/keras/layers/core.py", line 895, in build constraint=self.kernel_constraint) File "/usr/local/lib/python3.7/site-packages/keras/engine/base_layer.py", line 279, in add_weight weight = K.variable(initializer(shape, dtype=dtype), TypeError: weight_variable() got an unexpected keyword argument 'dtype'

該当のソースコード

python

1ソースコード 2import csv 3import re 4import datetime 5import time 6import numpy as np 7import matplotlib.pyplot as plt 8from keras.models import Sequential 9from keras.layers.core import Dense, Activation 10from keras.layers.recurrent import LSTM 11from keras.layers.wrappers import Bidirectional 12from keras.optimizers import Adam 13from keras.callbacks import EarlyStopping 14from sklearn import datasets 15from sklearn.model_selection import train_test_split 16from sklearn.utils import shuffle 17 18data = np.loadtxt("lstm_tokutyou1002.csv",delimiter=",") 19X = data[:,:1105] 20y = data[:,-1] 21Y = np.eye(2)[y.astype(int)] 22del y 23X_train, X_test, Y_train, Y_test = \ 24 train_test_split(X, Y, test_size=0.3) 25 26X_train, X_validation, Y_train, Y_validation = \ 27 train_test_split(X_train, Y_train, test_size=0.2) 28 29''' 30モデル設定 31''' 32n_in = 151186 33n_long = 1105 34n_hidden = 128 35n_out = 10 36 37 38def weight_variable(shape, name=None): 39 return np.random.normal(scale=.01, size=shape) 40 41 42early_stopping = EarlyStopping(monitor='val_loss', patience=10, verbose=1) 43 44model = Sequential() 45model.add(Bidirectional(LSTM(n_hidden), 46 input_shape=(n_long,n_in))) 47model.add(Dense(n_out, kernel_initializer=weight_variable)) 48model.add(Activation('softmax')) 49 50model.compile(loss='categorical_crossentropy', 51 optimizer=Adam(lr=0.001, beta_1=0.9, beta_2=0.999), 52 metrics=['accuracy']) 53 54''' 55モデル学習 56''' 57epochs = 300 58batch_size = 250 59 60hist = model.fit(X_train, Y_train, 61 batch_size=batch_size, 62 epochs=epochs, 63 validation_data=(X_validation, Y_validation), 64 callbacks=[early_stopping]) 65 66''' 67学習の進み具合 68''' 69acc = hist.history['val_acc'] 70loss = hist.history['val_loss'] 71 72plt.rc('font', family='serif') 73fig = plt.figure() 74plt.plot(range(len(loss)), loss, 75 label='loss', color='black') 76plt.xlabel('epochs') 77plt.show() 78 79''' 80予測精度の評価 81''' 82loss_and_metrics = model.evaluate(X_test, Y_test) 83print(loss_and_metrics) 84

試したこと

ネットで調べてもいい回答が見つかりませんでした。

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

機種名: Mac mini
機種ID: Macmini7,1
プロセッサ名: Intel Core i7
プロセッサ速度: 3 GHz

absl-py 0.8.0
astor 0.8.0
chainer 5.1.0
cycler 0.10.0
filelock 3.0.10
gast 0.3.2
google-pasta 0.1.7
grpcio 1.23.0
h5py 2.10.0
Keras 2.3.0
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
kiwisolver 1.1.0
Markdown 3.1.1
matplotlib 3.1.1
numpy 1.15.4
pandas 0.23.4
pip 19.1.1
protobuf 3.6.1
pyparsing 2.4.2
python-dateutil 2.7.5
pytz 2018.7
PyYAML 5.1.2
scikit-learn 0.20.1
scipy 1.1.0
setuptools 41.0.1
six 1.12.0
sklearn 0.0
tensorboard 1.14.0
tensorflow 1.14.0
tensorflow-estimator 1.14.0
termcolor 1.1.0
Werkzeug 0.15.6
wheel 0.33.4
wrapt 1.11.2

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

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

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

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

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

meg_

2019/09/18 09:16

コードはインデントが分かるように「コードの挿入」で記入してください。
Dpulex

2019/09/18 09:25

申し訳ないです。 修正いたしました。
guest

回答1

0

ベストアンサー

カスタマイズ
callable なオブジェクトを渡す場合には,初期化しようとする変数の shape と dtype を引数に取るように設計してください.

初期化 - Keras Documentation

ということだそうです。

でも、このケースだとそれほど複雑なことをしていないようなのでそもそもcallableにする意味がなく、keras.initializers.RandomNormalを使えばいいのではないでしょうか。

投稿2019/09/18 09:40

編集2019/09/18 09:43
hayataka2049

総合スコア30935

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

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

Dpulex

2019/09/18 13:56

回答ありがとうございます。 keras.initializers.RandomNormalを利用し、前に進んだのですが Traceback (most recent call last): File "lstm_tokutyou.py", line 73, in <module> callbacks=[early_stopping]) File "//anaconda3/lib/python3.7/site-packages/keras/engine/training.py", line 952, in fit batch_size=batch_size) File "//anaconda3/lib/python3.7/site-packages/keras/engine/training.py", line 751, in _standardize_user_data exception_prefix='input') File "//anaconda3/lib/python3.7/site-packages/keras/engine/training_utils.py", line 128, in standardize_input_data 'with shape ' + str(data_shape)) ValueError: Error when checking input: expected bidirectional_1_input to have 3 dimensions, but got array with shape (84664, 1105) というエラーが出てしまいます。次元数が少ないのでしょうか?
hayataka2049

2019/09/18 14:13

別途質問を立てたのであれば、とりあえずこちらは解決済みにしてください。私の知識で回答できるかはわかりませんが、見てみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問