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

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

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

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

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

Q&A

解決済

1回答

597閲覧

Keras TPUを用いた処理におけるエラー

howareyou1245

総合スコア20

Keras

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

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

0グッド

0クリップ

投稿2019/08/30 14:23

ニューラルネットで2クラス分類をTPUを用いて行うプログラムを作っています。
約18万のデータがあり、
x には400次元のnumpy型配列
y には0または1の2値が入っています。

Google Colab上で実行しています。

当方Chainerを使っていましたが、データ量が多く処理に時間がかかるためTPUを使えるKerasを初めて触りました。
実行したところ、1Epochはうまく終えるものの、その後にエラーが発生します。

エラー内容がどうなっているのかもわかりませんが、ご教授をお願いしたいです。

ソースコードは以下です。

python3

1import numpy as np 2from sklearn.model_selection import train_test_split 3import tensorflow as tf 4from tensorflow import keras as keras 5import os 6from tensorflow.contrib.tpu.python.tpu import keras_support 7 8 9x = np.load(file="alltrain.npy").astype(np.float32) 10y = np.load(file="alllabel.npy") 11y = np.array(y,dtype=np.float32) 12 13x_train, x_test, y_train, y_test = train_test_split(x,y,train_size=0.7) 14 15 16tpu_grpc_url = "grpc://"+os.environ["COLAB_TPU_ADDR"] 17tpu_model = tf.contrib.cluster_resolver.TPUClusterResolver(tpu_grpc_url) 18tf.contrib.distribute.initialize_tpu_system(tpu_model) 19strategy = tf.contrib.distribute.TPUStrategy(tpu_model, steps_per_run=100) 20with strategy.scope(): 21 model = keras.models.Sequential() 22 model.add(keras.layers.Dense(units=800,input_dim=400)) 23 model.add(keras.layers.Activation('sigmoid')) 24 model.add(keras.layers.Dense(units=2)) 25 model.add(keras.layers.Activation('softmax')) 26 model.compile(loss='sparse_categorical_crossentropy',optimizer='Adam',metrics=['accuracy']) 27 model.fit(x_train,y_train,epochs=30,batch_size=32,steps_per_epoch=x_train.shape[0] // 32, validation_steps=x_test.shape[0] // 32) 28 score = model.evaluate(x_test, y_test, batch_size=1) 29print(score[1])

エラーコードは以下です。

Error

1W0830 14:12:50.895482 139959299786624 tpu_strategy_util.py:56] TPU system %s has already been initialized. Reinitializing the TPU can cause previously created variables on TPU to be lost. 2Epoch 1/30 34000/4066 [============================>.] - ETA: 0s - loss: 0.6156 - acc: 0.7041 4--------------------------------------------------------------------------- 5TypeError Traceback (most recent call last) 6<ipython-input-43-b9e2703621db> in <module>() 7 25 model.add(keras.layers.Activation('softmax')) 8 26 model.compile(loss='sparse_categorical_crossentropy',optimizer='Adam',metrics=['accuracy']) 9---> 27 model.fit(x_train,y_train,epochs=30,batch_size=32,steps_per_epoch=x_train.shape[0] // 32, validation_steps=x_test.shape[0] // 32) 10 28 score = model.evaluate(x_test, y_test, batch_size=1) 11 29 print(score[1]) 12 1312 frames 14/usr/local/lib/python3.6/dist-packages/tensorflow/python/data/ops/dataset_ops.py in get_structure(dataset_or_iterator) 15 2001 pass 16 2002 raise TypeError("`dataset_or_iterator` must be a Dataset or Iterator object, " 17-> 2003 "but got %s." % type(dataset_or_iterator)) 18 2004 19 2005 20 21TypeError: `dataset_or_iterator` must be a Dataset or Iterator object, but got <class 'NoneType'>.

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

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

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

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

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

guest

回答1

0

自己解決

validation_steps=x_test.shape[0] // 32
が邪魔をしていて、イテレータ4066に対して4000個までしか処理を行えていませんでした。

投稿2019/08/30 14:47

howareyou1245

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問