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