teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

修正

2017/09/01 08:29

投稿

trafalbad
trafalbad

スコア303

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/hagiharatatsuya/Downloads/train.tfrecords')
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

追記

2017/09/01 08:28

投稿

trafalbad
trafalbad

スコア303

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

質問変更

2017/09/01 08:28

投稿

trafalbad
trafalbad

スコア303

title CHANGED
@@ -1,1 +1,1 @@
1
- TFRecordファイルの拡張子について
1
+ エラー’local variable 'loss_value' referenced before assignment’’について
body CHANGED
@@ -1,1 +1,50 @@
1
- cifar10のデータTFRecordファイルに書き込みのですが、ファイルパスに指定するファイル拡張子は何にすればよいのでょうか?
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

2017/09/01 08:27

投稿

trafalbad
trafalbad

スコア303

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

修正

2017/08/31 15:17

投稿

trafalbad
trafalbad

スコア303

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('sample_batch')
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( ["sample_batch"], num_epochs= None )
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

修正

2017/08/31 13:27

投稿

trafalbad
trafalbad

スコア303

title CHANGED
@@ -1,1 +1,1 @@
1
- TFRecordファイルへの書き込みのファイル形式について
1
+ TFRecordファイルへの書き込み方法について
body CHANGED
@@ -1,9 +1,7 @@
1
- cifar10のデータをTFRecordファイルに書き込み、読み込むとしたのですがデータsess.runの時にデータがないとエラーが出ます
1
+ cifar10のデータをTFRecordファイルに書き込みたのですが、質問あります
2
- おそらくファイルの書き込みか、読み込みの時に原因があると思うんですが、データを書き込む時、なんのファイル形式(csv, pickle等)であれば良いのでしょうか?
2
+ 質問1:データを書き込む時、なんのファイル形式(csv, pickle等)であれば良いのでしょうか?
3
3
 
4
- 保存したいは数値に変換した(10000, 3072)の画像と10000,)ラベルです
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
- 'label': tf.FixedLenFeature([1], tf.int64),
43
+ 'label': tf.FixedLenFeature([], tf.int64),
46
- 'image': tf.FixedLenFeature([3072], tf.string)})
44
+ 'image': tf.FixedLenFeature([], tf.string),
47
-
48
- label = features[ 'label' ]
45
+ })
49
- image = features[ 'image' ]
50
46
  ```

1

修正

2017/08/31 13:25

投稿

trafalbad
trafalbad

スコア303

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):