質問編集履歴
7
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
```
|
13
13
|
with tf.Graph().as_default():
|
14
14
|
global_step = tf.contrib.framework.get_or_create_global_step()
|
15
|
-
images, label = inpus_s('/Users/
|
15
|
+
images, label = inpus_s('/Users/Downloads/train.tfrecords')
|
16
16
|
c_logits = cnn(images)
|
17
17
|
loss = loss(c_logits, label)
|
18
18
|
train_op = train(loss, global_step)
|
6
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -47,4 +47,6 @@
|
|
47
47
|
while not mon_sess.should_stop():
|
48
48
|
mon_sess.run(train_op)
|
49
49
|
|
50
|
+
UnboundLocalError: local variable 'loss_value' referenced before assignment
|
51
|
+
|
50
52
|
```
|
5
質問変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
エラー’local variable 'loss_value' referenced before assignment’’について
|
body
CHANGED
@@ -1,1 +1,50 @@
|
|
1
|
-
|
1
|
+
tensorflowで``` sees.run() ```をしたのですが、次のようなエラーが出てしまいました。
|
2
|
+
```
|
3
|
+
local variable 'loss_value' referenced before assignment’
|
4
|
+
```
|
5
|
+
エラーの内容を見ると``` loss_value ```が事前に定義されていないと出てしまうのですが、コードを見て見ると``` loss_value ```は定義されています。
|
6
|
+
|
7
|
+
|
8
|
+
このコードはcifar10から持ってきたものですが、この```_LoggerHook() ```というclassに問題があるようなのですが、この場合、``` loss_value ```をどこでどのように定義すればこのエラーは解決するのでしょうか?
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
```
|
13
|
+
with tf.Graph().as_default():
|
14
|
+
global_step = tf.contrib.framework.get_or_create_global_step()
|
15
|
+
images, label = inpus_s('/Users/hagiharatatsuya/Downloads/train.tfrecords')
|
16
|
+
c_logits = cnn(images)
|
17
|
+
loss = loss(c_logits, label)
|
18
|
+
train_op = train(loss, global_step)
|
19
|
+
class _LoggerHook(tf.train.SessionRunHook):
|
20
|
+
def begin(self):
|
21
|
+
self._step = -1
|
22
|
+
self._start_time = time.time()
|
23
|
+
|
24
|
+
def before_run(self, run_context):
|
25
|
+
self._step += 1
|
26
|
+
return tf.train.SessionRunArgs(loss) # Asks for loss value.
|
27
|
+
|
28
|
+
def after_run(self, run_context, run_values):
|
29
|
+
if self._step % 10 == 0:
|
30
|
+
current_time = time.time()
|
31
|
+
duration = current_time - self._start_time
|
32
|
+
self._start_time = current_time
|
33
|
+
|
34
|
+
loss_value = run_values.results
|
35
|
+
examples_per_sec = 10 * 128 / duration
|
36
|
+
sec_per_batch = float(duration / 10)
|
37
|
+
|
38
|
+
print ('%s: step %d, loss = %.2f (%.1f examples/sec; %.3f '
|
39
|
+
'sec/batch)' % (datetime.now(), self._step, loss_value,
|
40
|
+
examples_per_sec, sec_per_batch))
|
41
|
+
|
42
|
+
with tf.train.MonitoredTrainingSession(hooks=[tf.train.StopAtStepHook(last_step=1000),
|
43
|
+
tf.train.NanTensorHook(loss),
|
44
|
+
_LoggerHook()],
|
45
|
+
config=tf.ConfigProto(
|
46
|
+
log_device_placement=False)) as mon_sess:
|
47
|
+
while not mon_sess.should_stop():
|
48
|
+
mon_sess.run(train_op)
|
49
|
+
|
50
|
+
```
|
4
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
TFRecordファイル
|
1
|
+
TFRecordファイルの拡張子について
|
body
CHANGED
@@ -1,47 +1,1 @@
|
|
1
|
-
cifar10のデータをTFRecordファイルに書き込みたいのですが、
|
1
|
+
cifar10のデータをTFRecordファイルに書き込みたいのですが、ファイルパスに指定するファイルの拡張子は何にすればよいのでしょうか?
|
2
|
-
質問1:データを書き込む時、なんのファイル形式(csv, pickle等)であれば良いのでしょうか?
|
3
|
-
|
4
|
-
質問2:下記のデータ(imageとlabel)の「**TFRecordファイルに書き込み**」で、間違っているところなどありましたらご指摘お願いします?
|
5
|
-
|
6
|
-
**cifar10読み込み**
|
7
|
-
```
|
8
|
-
def unpickle(file):
|
9
|
-
fp = open(file, 'rb')
|
10
|
-
if sys.version_info.major == 2:
|
11
|
-
data = pickle.load(fp)
|
12
|
-
elif sys.version_info.major == 3:
|
13
|
-
data = pickle.load(fp, encoding='latin-1')
|
14
|
-
fp.close()
|
15
|
-
|
16
|
-
return data
|
17
|
-
train_images=unpickle('data_batch_1')['data']
|
18
|
-
train_labels=unpickle('data_batch_1')['labels']
|
19
|
-
```
|
20
|
-
|
21
|
-
**TFRecordファイルに書き込み**
|
22
|
-
```
|
23
|
-
writer = tf.python_io.TFRecordWriter('/Users/Downloads/sample.pickle')
|
24
|
-
for i in range(0, len(train_images)):
|
25
|
-
features = train_images[i]
|
26
|
-
label = train_labels[i]
|
27
|
-
example = tf.train.Example(features=tf.train.Features(feature={
|
28
|
-
'label' : tf.train.Feature(float_list=tf.train.FloatList(value=[label])),
|
29
|
-
'image' : tf.train.Feature(float_list=tf.train.FloatList(value=features.astype("float")))}))
|
30
|
-
|
31
|
-
serialized = example.SerializeToString()
|
32
|
-
|
33
|
-
# write the serialized object to disk
|
34
|
-
writer.write(serialized)
|
35
|
-
```
|
36
|
-
|
37
|
-
**読み込み**
|
38
|
-
```
|
39
|
-
filename_queue = tf.train.string_input_producer( ["/Users/Downloads/sample.pickle"], num_epochs= None )
|
40
|
-
reader = tf.TFRecordReader()
|
41
|
-
_, value = reader.read(filename_queue)
|
42
|
-
|
43
|
-
features = tf.parse_single_example(value, features={
|
44
|
-
'label': tf.FixedLenFeature([], tf.int64),
|
45
|
-
'image': tf.FixedLenFeature([], tf.string),
|
46
|
-
})
|
47
|
-
```
|
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
cifar10のデータをTFRecordファイルに書き込みたいのですが、質問があります
|
1
|
+
cifar10のデータをTFRecordファイルに書き込みたいのですが、質問があります(ちなみこの実装コードでは上手くデータを読み出せません)
|
2
2
|
質問1:データを書き込む時、なんのファイル形式(csv, pickle等)であれば良いのでしょうか?
|
3
3
|
|
4
4
|
質問2:下記のデータ(imageとlabel)の「**TFRecordファイルに書き込み**」で、間違っているところなどありましたらご指摘お願いします?
|
5
|
+
|
5
6
|
**cifar10読み込み**
|
6
7
|
```
|
7
8
|
def unpickle(file):
|
@@ -19,7 +20,7 @@
|
|
19
20
|
|
20
21
|
**TFRecordファイルに書き込み**
|
21
22
|
```
|
22
|
-
writer = tf.python_io.TFRecordWriter('
|
23
|
+
writer = tf.python_io.TFRecordWriter('/Users/Downloads/sample.pickle')
|
23
24
|
for i in range(0, len(train_images)):
|
24
25
|
features = train_images[i]
|
25
26
|
label = train_labels[i]
|
@@ -35,7 +36,7 @@
|
|
35
36
|
|
36
37
|
**読み込み**
|
37
38
|
```
|
38
|
-
filename_queue = tf.train.string_input_producer( ["
|
39
|
+
filename_queue = tf.train.string_input_producer( ["/Users/Downloads/sample.pickle"], num_epochs= None )
|
39
40
|
reader = tf.TFRecordReader()
|
40
41
|
_, value = reader.read(filename_queue)
|
41
42
|
|
2
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
TFRecordファイルへの書き込み
|
1
|
+
TFRecordファイルへの書き込み方法について
|
body
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
cifar10のデータをTFRecordファイルに書き込み
|
1
|
+
cifar10のデータをTFRecordファイルに書き込みたいのですが、質問があります
|
2
|
-
|
2
|
+
質問1:データを書き込む時、なんのファイル形式(csv, pickle等)であれば良いのでしょうか?
|
3
3
|
|
4
|
-
|
4
|
+
質問2:下記のデータ(imageとlabel)の「**TFRecordファイルに書き込み**」で、間違っているところなどありましたらご指摘お願いします?
|
5
|
-
書き込むファイル形式はpickleでもいいのでしょうか?
|
6
|
-
|
7
5
|
**cifar10読み込み**
|
8
6
|
```
|
9
7
|
def unpickle(file):
|
@@ -42,9 +40,7 @@
|
|
42
40
|
_, value = reader.read(filename_queue)
|
43
41
|
|
44
42
|
features = tf.parse_single_example(value, features={
|
45
|
-
|
43
|
+
'label': tf.FixedLenFeature([], tf.int64),
|
46
|
-
|
44
|
+
'image': tf.FixedLenFeature([], tf.string),
|
47
|
-
|
48
|
-
|
45
|
+
})
|
49
|
-
image = features[ 'image' ]
|
50
46
|
```
|
1
修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
TFRecordファイルへの書き込み
|
1
|
+
TFRecordファイルへの書き込みのファイル形式について
|
body
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
cifar10のデータをTFRecordファイルに書き込み、読み込むとしたのですがデータがsess.runの時にデータがないとエラーが出ます。
|
2
|
-
おそらくファイルの書き込みか、読み込みの時に原因があると思うんですが、
|
2
|
+
おそらくファイルの書き込みか、読み込みの時に原因があると思うんですが、データを書き込む時、なんのファイル形式(csv, pickle等)であれば良いのでしょうか?
|
3
|
-
下記コードで実装した場所で問題がある場所はありますでしょうか?
|
4
3
|
|
4
|
+
保存したいのは数値に変換した(10000, 3072)の画像と(10000,)のラベルです。
|
5
|
+
書き込むファイル形式はpickleでもいいのでしょうか?
|
6
|
+
|
5
7
|
**cifar10読み込み**
|
6
8
|
```
|
7
9
|
def unpickle(file):
|