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

質問編集履歴

3

重複した内容の削除

2017/08/28 07:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -132,7 +132,6 @@
132
132
 
133
133
  このコードを実行するとtf.global_variables_initializer()で初期化出来ていないという趣旨のエラーが出ます
134
134
 
135
- これは、tf.global_variables_initializer()によってパラメータの初期化が出来ていないという事だと思うのですが、どうすれば初期化する事が出来るのでしょうか?
136
135
  それともインスタンス変数で初期化するのはあまり望ましくない事なのでしょうか?
137
136
 
138
137
  わかる方いらしたらよろしくお願いします><

2

解決\?策の追記

2017/08/28 07:53

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -130,71 +130,135 @@
130
130
 
131
131
  自分に判りやすいように、畳み込み層と全結合層を分けて書いています
132
132
 
133
- このコードを実行すると
134
- ```ここに言語を入力
135
- Traceback (most recent call last):
136
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 1039, in _do_call
137
- return fn(*args)
138
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 1021, in _run_fn
139
- status, run_metadata)
140
- File "c:\Python3.5.0\python35\lib\contextlib.py", line 66, in __exit__
133
+ このコードを実行するとtf.global_variables_initializer()で初期化出来ていないという趣旨のエラーが出ます
141
- next(self.gen)
142
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 466, in raise_exception_on_not_ok_status
143
- pywrap_tensorflow.TF_GetCode(status))
144
- tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Variable_5
145
- [[Node: Variable_5/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_5"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_5)]]
146
134
 
147
- During handling of the above exception, another exception occurred:
135
+ これは、tf.global_variables_initializer()によってパラメータの初期化が出来ていないという事だと思うのですが、どうすれば初期化する事が出来るのでしょうか?
136
+ それともインスタンス変数で初期化するのはあまり望ましくない事なのでしょうか?
148
137
 
149
- Traceback (most recent call last):
138
+ わかる方いらしたらよろしくお願いします><
150
- File "C:\Python3.5.0\Python35\コード\test.py", line 132, in <module>
151
- net.学習処理(32, 64)
152
- File "C:\Python3.5.0\Python35\コード\test.py", line 125, in 学習処理
153
- self.キープ率:0.5})
154
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 778, in run
155
- run_metadata_ptr)
156
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 982, in _run
157
- feed_dict_string, options, run_metadata)
158
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 1032, in _do_run
159
- target_list, options, run_metadata)
160
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 1052, in _do_call
161
- raise type(e)(node_def, op, message)
162
- tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Variable_5
163
- [[Node: Variable_5/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_5"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_5)]]
164
139
 
165
- Caused by op 'Variable_5/read', defined at:
166
- File "C:\Python3.5.0\Python35\コード\test.py", line 132, in <module>
167
- net.学習処理(32, 64)
168
- File "C:\Python3.5.0\Python35\コード\test.py", line 122, in 学習処理
169
- n = セッション.run(self.確率的勾配下降(入力値, 正解サイズ),
170
- File "C:\Python3.5.0\Python35\コード\test.py", line 99, in 確率的勾配下降
171
- 欠損値 = self.欠損関数(入力値, 正解ラベル)
172
- File "C:\Python3.5.0\Python35\コード\test.py", line 85, in 欠損関数
173
- 出力値 = self.伝達処理(32, 64, 入力値)
174
- File "C:\Python3.5.0\Python35\コード\test.py", line 64, in 伝達処理
175
- 畳出力値 = 畳み込み層(f枚数1, f枚数2).伝達処理(入力値)
176
- File "C:\Python3.5.0\Python35\コード\test.py", line 13, in __init__
177
- self.バイアス1 = tf.Variable(tf.constant(0.1, shape=[f枚数1]))
178
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\ops\variables.py", line 197, in __init__
179
- expected_shape=expected_shape)
180
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\ops\variables.py", line 316, in _init_from_args
181
- self._snapshot = array_ops.identity(self._variable, name="read")
182
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 1338, in identity
183
- result = _op_def_lib.apply_op("Identity", input=input, name=name)
184
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 768, in apply_op
185
- op_def=op_def)
186
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\framework\ops.py", line 2336, in create_op
187
- original_op=self._default_original_op, op_def=op_def)
188
- File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\framework\ops.py", line 1228, in __init__
189
- self._traceback = _extract_stack()
190
140
 
141
+ 追記
191
- FailedPreconditionError (see above for traceback): Attempting to use uninitialized value Variable_5
142
+ 結構前の質問ですが、自分のしたい感じの事が出来たので、一応追記しておきます。
192
- [[Node: Variable_5/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_5"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_5)]]
193
143
 
144
+ ```python
145
+ mport tensorflow as tf
146
+ import numpy as np
147
+ import モデル
148
+ import 関数
149
+ from dataset.mnist import load_mnist
150
+
151
+ class mnist:
152
+ def __init__(self,入力形状, 正解形状, f枚数, 中間数, 学習率):
153
+ self.セッション = tf.Session()
154
+ self.入力ホルダ = tf.placeholder(tf.float32, 入力形状)
155
+ self.正解ホルダ = tf.placeholder(tf.float32, 正解形状)
156
+ self.キープ率 = tf.placeholder(tf.float32)
157
+
158
+ """畳み込み層のパラメーター"""
159
+ self.f1 = tf.Variable(tf.truncated_normal([3, 3, 1, f枚数],
160
+ stddev=0.01))
161
+ self.fb1 = tf.Variable(tf.truncated_normal([f枚数],
162
+ stddev=0.01))
163
+ self.f2 = tf.Variable(tf.truncated_normal([3, 3, f枚数, f枚数],
164
+ stddev=0.01))
165
+ self.fb2 = tf.Variable(tf.truncated_normal([f枚数],
166
+ stddev=0.01))
167
+
168
+ self.畳み込み出力 = モデル.cnn_batch_relu(self.入力ホルダ,
169
+ self.f1, self.fb1,
170
+ self.f2, self.fb2)
171
+
172
+ """全結合層のパラメーター"""
173
+ 入力数 = tf.size(self.畳み込み出力[0])
174
+ 全結合 = tf.reshape(self.畳み込み出力, [-1, 入力数])
175
+ 出力数 = 正解形状[1]
176
+
177
+ self.重み1 = \
178
+ tf.Variable(tf.truncated_normal([入力数,中間数],
179
+ stddev=tf.sqrt(2.0 / tf.cast(入力数, tf.float32))))
180
+ self.バイアス1 = tf.Variable(tf.truncated_normal([中間数],stddev=0.01))
181
+
182
+ self.重み2 = \
183
+ tf.Variable(tf.truncated_normal([中間数, 出力数],
184
+ stddev= 0.01))
185
+ self.バイアス2 = tf.Variable(tf.truncated_normal([出力数], stddev=0.01))
186
+
187
+ self.出力層 = モデル.fcn_batch_relu(self.重み1, self.バイアス1,
188
+ self.重み2, self.バイアス2,
189
+ 全結合, self.キープ率)
190
+
191
+ self.欠損値 = 関数.二乗和誤差(self.出力層, self.正解ホルダ)
192
+ self.勾配下降 = \
193
+ tf.train.GradientDescentOptimizer(学習率).minimize(self.欠損値)
194
+ self.セッション.run(tf.global_variables_initializer())
195
+
196
+ def 出力層run(self, 入力値, キープ率):
197
+ return self.セッション.run(self.出力層,
198
+ feed_dict={self.入力ホルダ:入力値,
199
+ self.キープ率:キープ率})
200
+
201
+
202
+ def 欠損値run(self, 入力値, 正解ラベル, キープ率):
203
+ return self.セッション.run(self.欠損値,
204
+ feed_dict={self.入力ホルダ:入力値,
205
+ self.正解ホルダ:正解ラベル,
206
+ self.キープ率:キープ率})
207
+
208
+ def 正解率run(self, 入力値, 正解ラベル, キープ率):
209
+ 出力層 = self.出力層run(入力値, キープ率)
210
+ 正解率 = 関数.分類正解率(出力層, 正解ラベル)
211
+ return self.セッション.run(正解率,
212
+ feed_dict={self.入力ホルダ:入力値,
213
+ self.正解ホルダ:正解ラベル,
214
+ self.キープ率:キープ率})
215
+
216
+ def 勾配下降run(self, 入力値, 正解ラベル, キープ率):
217
+ self.セッション.run(self.勾配下降,
218
+ feed_dict={self.入力ホルダ:入力値,
219
+ self.正解ホルダ:正解ラベル,
220
+ self.キープ率:キープ率})
221
+
222
+
223
+ (入力値, 正解ラベル), (t入力値, t正解ラベル) = load_mnist(flatten=True,
224
+ normalize=False, one_hot_label=True)
225
+
226
+ network = mnist([None, 28, 28, 1], [None, 10], 50, 2024, 0.0001)
227
+
228
+ 入力値 = 入力値.reshape(60000, 28, 28, 1)
229
+ t入力値 = t入力値.reshape(10000, 28, 28, 1)
230
+ 学習回数 = 50000
231
+ バッチsize = 100
232
+
233
+ for _ in range(学習回数):
234
+ ミニバッチ = np.random.choice(60000, バッチsize)
235
+ 入力ミニバッチ = 入力値[ミニバッチ]
236
+ 正解ミニバッチ = 正解ラベル[ミニバッチ]
237
+ network.勾配下降run(入力ミニバッチ, 正解ミニバッチ, 0.5)
238
+
239
+ if _%200 == 0:
240
+ 欠損値リスト = []
241
+ 正解率リスト = []
242
+ start = 0
243
+ end = 1001
244
+ for i in range(10):
245
+ 欠損値 = network.欠損値run(t入力値[start:end],
246
+ t正解ラベル[start:end],
247
+ 1.0)
248
+
249
+ 正解率 = network.正解率run(t入力値[start:end],
250
+ t正解ラベル[start:end],
251
+ 1.0)
252
+
253
+ 欠損値リスト.append(欠損値)
254
+ 正解率リスト.append(正解率)
255
+ start += 1000
256
+ end += 1000
257
+
258
+ print(len(欠損値リスト))
259
+ print(len(正解率リスト))
260
+ print(_, "欠損値", np.sum(欠損値リスト) / 10)
261
+ print(_, "正解率", np.mean(正解率リスト))
194
262
  ```
195
- というエラーが出ます
196
263
 
197
- これは、tf.global_variables_initializer()によってパラメータの初期化が出来ていないいうだと思うのすがうすれば初期化する事が出来るのでょうか?
264
+ インスタンス変数にtf.Sessiontf.global_variables_initializerを置く事で、前回のエラーを回避しつつ、session.runもまく起動する事が出来た。
198
- それともインスタンス変数で初期化するのはあまり望ましくない事なのでしょうか?
199
-
200
- わかる方いらしたらよろしくお願いします><

1

エラーメッセージの修正

2017/08/28 07:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -132,7 +132,65 @@
132
132
 
133
133
  このコードを実行すると
134
134
  ```ここに言語を入力
135
+ Traceback (most recent call last):
136
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 1039, in _do_call
137
+ return fn(*args)
138
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 1021, in _run_fn
139
+ status, run_metadata)
140
+ File "c:\Python3.5.0\python35\lib\contextlib.py", line 66, in __exit__
141
+ next(self.gen)
142
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 466, in raise_exception_on_not_ok_status
143
+ pywrap_tensorflow.TF_GetCode(status))
144
+ tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Variable_5
145
+ [[Node: Variable_5/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_5"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_5)]]
146
+
147
+ During handling of the above exception, another exception occurred:
148
+
149
+ Traceback (most recent call last):
150
+ File "C:\Python3.5.0\Python35\コード\test.py", line 132, in <module>
151
+ net.学習処理(32, 64)
152
+ File "C:\Python3.5.0\Python35\コード\test.py", line 125, in 学習処理
153
+ self.キープ率:0.5})
154
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 778, in run
155
+ run_metadata_ptr)
156
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 982, in _run
157
+ feed_dict_string, options, run_metadata)
158
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 1032, in _do_run
159
+ target_list, options, run_metadata)
160
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\client\session.py", line 1052, in _do_call
161
+ raise type(e)(node_def, op, message)
162
+ tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Variable_5
163
+ [[Node: Variable_5/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_5"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_5)]]
164
+
165
+ Caused by op 'Variable_5/read', defined at:
166
+ File "C:\Python3.5.0\Python35\コード\test.py", line 132, in <module>
167
+ net.学習処理(32, 64)
168
+ File "C:\Python3.5.0\Python35\コード\test.py", line 122, in 学習処理
169
+ n = セッション.run(self.確率的勾配下降(入力値, 正解サイズ),
170
+ File "C:\Python3.5.0\Python35\コード\test.py", line 99, in 確率的勾配下降
171
+ 欠損値 = self.欠損関数(入力値, 正解ラベル)
172
+ File "C:\Python3.5.0\Python35\コード\test.py", line 85, in 欠損関数
173
+ 出力値 = self.伝達処理(32, 64, 入力値)
174
+ File "C:\Python3.5.0\Python35\コード\test.py", line 64, in 伝達処理
175
+ 畳出力値 = 畳み込み層(f枚数1, f枚数2).伝達処理(入力値)
176
+ File "C:\Python3.5.0\Python35\コード\test.py", line 13, in __init__
177
+ self.バイアス1 = tf.Variable(tf.constant(0.1, shape=[f枚数1]))
178
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\ops\variables.py", line 197, in __init__
179
+ expected_shape=expected_shape)
180
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\ops\variables.py", line 316, in _init_from_args
181
+ self._snapshot = array_ops.identity(self._variable, name="read")
182
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 1338, in identity
183
+ result = _op_def_lib.apply_op("Identity", input=input, name=name)
184
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 768, in apply_op
185
+ op_def=op_def)
186
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\framework\ops.py", line 2336, in create_op
187
+ original_op=self._default_original_op, op_def=op_def)
188
+ File "c:\Python3.5.0\python35\lib\site-packages\tensorflow\python\framework\ops.py", line 1228, in __init__
189
+ self._traceback = _extract_stack()
190
+
135
- Attempting to use uninitialized value Variable_4
191
+ FailedPreconditionError (see above for traceback): Attempting to use uninitialized value Variable_5
192
+ [[Node: Variable_5/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_5"], _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_5)]]
193
+
136
194
  ```
137
195
  というエラーが出ます
138
196