tensorflow実行時のエラーメッセージの読み方が分かりません
受付中
回答 1
投稿
- 評価
- クリップ 0
- VIEW 886
前提・実現したいこと
tensorflowでリカレンスプロットの識別を行おうとしています。
超初心者です。
発生している問題・エラーメッセージ
Traceback (most recent call last):
File "conv.py", line 56, in <module>
dataset = Dataset()
File "conv.py", line 13, in init
data = np.loadtxt("data.csv")
File "/home/kitaji/tensorflow/lib/python2.7/site-packages/numpy/lib/npyio.py", line 1101, in loadtxt
for x in read_data(_loadtxt_chunksize):
File "/home/kitaji/tensorflow/lib/python2.7/site-packages/numpy/lib/npyio.py", line 1028, in read_data
items = [conv(val) for (conv, val) in zip(converters, vals)]
KeyboardInterrupt
該当のソースコード
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import numpy as np
import tensorflow as tf
from my_nn_lib import Convolution2D, MaxPooling2D, Conv2Dtranspose
from my_nn_lib import FullConnected, ReadOut, DropOut
np.random.seed(10)
class Dataset():
def __init__(self):
data = np.loadtxt("data.csv")
np.random.shuffle(data)
self.test_label, self.test_data = np.hsplit(data[0:2000],[2]) #
#self.train_label, self.train_data = np.hsplit(data[1500:],[2])
self.train = data[2000:] #
def rand_mini_batch(self, n):
np.random.shuffle(self.train)
self.train_label, self.train_data = np.hsplit(self.train[0:],[2])
data = self.train_data[0:n]
label= self.train_label[0:n]
return data, label
def mk_nn_model(x, y_):
x_image = tf.reshape(x, [-1, 128, 128, 1])
conv1 = Convolution2D(x_image, (64, 64), 1, 10, (5, 5))
conv1_out = conv1.output()
pool1 = MaxPooling2D(conv1_out)
pool1_out = pool1.output()
conv2 = Convolution2D(pool1_out, (32, 32), 10, 20, (5, 5))
conv2_out = conv2.output()
pool2 = MaxPooling2D(conv2_out)
pool2_out = pool2.output()
full1 = FullConnected(tf.reshape(pool2_out, [-1, 32*32*20]), 32*32*20, 100)
full1_out = full1.output()
drop = DropOut(full1_out, keep_prob)
drop_out = drop.output()
read = ReadOut(drop_out, 100, 2) #
y = read.output()
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_*tf.log(tf.clip_by_value(y,1e-10,1.0)), reduction_indices=[1]))
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
return accuracy, cross_entropy, correct_prediction
if __name__ == '__main__':
with tf.Graph().as_default():
dataset = Dataset()
tf.set_random_seed(10)
# Variables
x = tf.placeholder(tf.float32, [None, 16384])
y_ = tf.placeholder(tf.float32, [None, 2])
keep_prob = tf.placeholder(tf.float32)
ac, ce, cor = mk_nn_model(x, y_)
train_step = tf.train.AdamOptimizer(1e-4).minimize(ce)
# Logging data for TensorBoard
_ = tf.scalar_summary('cross entropy', ce)
_ = tf.scalar_summary('accuracy', ac)
init = tf.initialize_all_variables()
# Train
f = open('res_ac', 'w')
f2 = open('res_ce', 'w')
with tf.Session() as sess:
ckpt = tf.train.get_checkpoint_state('./')
saver = tf.train.Saver()
writer = tf.train.SummaryWriter('/home/fuchida/tensorflow/fuchida/train', graph=sess.graph)
if ckpt:
last_model = ckpt.model_checkpoint_path
print ('load ' + last_model)
saver.restore(sess, last_model)
else:
sess.run(init)
print('Training...')
for i in range(50001):
batch_xs, batch_ys = dataset.rand_mini_batch(30)
#batch_xs, batch_ys = dataset.train_data, dataset.train_label
feed = {x: batch_xs, y_: batch_ys, keep_prob: 0.5}
train_step.run(feed_dict=feed)
if i%100 == 0:
feed = {x: batch_xs, y_: batch_ys, keep_prob: 1.0}
summary_str, train_ac, train_ce = sess.run([tf.merge_all_summaries(), ac, ce], feed_dict=feed)
writer.add_summary(summary_str, i)
print(' step, accuracy, cross_entropy = %6d: %6.3f %6.3f' % (i, train_ac, train_ce))
f.write('%d, %f\n' % (i, train_ac))
f2.write('%d, %f\n' % (i, train_ce))
saver.save(sess, 'train', global_step = i)
if train_ac == 1.0:
break
f.close()
f2.close()
# Test
c = 0
n = 0
test_feed = {x: dataset.test_data, y_: dataset.test_label, keep_prob: 1.0}
corect = sess.run(cor, feed_dict=test_feed)
"""
for i in range(1500):
if (corect[i] != 1):
c += 1
if (c < 30):
print('%d' %c)
print(corect[i])
print(dataset.test_label[i])
print(dataset.test_data[i])
print('\n')
else:
if (n < 30):
n += 1
print(corect[i])
print(dataset.test_label[i])
print(dataset.test_data[i])
print('\n')
print('False count:', c);
"""
print('test accuracy = ', ac.eval(feed_dict=test_feed))
試したこと
パラメタの数値変更など
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+3
KeyboardInterrupt
上記エラーは「Ctrl+C」などでプログラムが使用者によって中止されたことを表します。おそらく中止しましたよね?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる