質問編集履歴

23

しりたいことを編集

2019/08/28 17:22

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  #知りたいこと
16
16
 
17
- ループで同じデータを入れた時に毎回同じ予測値を得るには、どうしたら良いのでしょうか?
17
+ ループで同じデータを入れた時に毎回同じ予測値を得るには、他に固定すべき乱数シードがあるのでしょうか?
18
18
 
19
19
  もしくはCPUでも全く同じ値にはならないのでしょうか?
20
20
 

22

ソースコードを修正

2019/08/28 17:21

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,11 @@
26
26
 
27
27
  #ソースコード(再現動作可能)
28
28
 
29
- 5/30 [sklearnボストンのデータセット](https://newtechnologylifestyle.net/%E3%83%9C%E3%82%B9%E3%83%88%E3%83%B3%E5%B8%82%E3%81%AE%E4%BD%8F%E5%AE%85%E4%BE%A1%E6%A0%BC%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%82%8B/)を使用して、コピペで動作が再現出来る物に差し替えました。
29
+ 7/20 [kerasで学習が再現できない人へ](https://qiita.com/okotaku/items/8d682a11d8f2370684c9)を参考に追記してました。
30
+
31
+ ※5/30 [sklearnボストンのデータセット]
32
+
33
+ (https://newtechnologylifestyle.net/%E3%83%9C%E3%82%B9%E3%83%88%E3%83%B3%E5%B8%82%E3%81%AE%E4%BD%8F%E5%AE%85%E4%BE%A1%E6%A0%BC%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%82%8B/)を使用して、コピペで動作が再現出来る物に差し替えました。
30
34
 
31
35
   犯罪発生数を目的変数にして他の説明変数で学習し、予測する形になっています。
32
36
 
@@ -34,6 +38,8 @@
34
38
 
35
39
  ```Python
36
40
 
41
+ import os
42
+
37
43
  import pandas as pd
38
44
 
39
45
  import numpy as np
@@ -92,6 +98,8 @@
92
98
 
93
99
 
94
100
 
101
+ os.environ['PYTHONHASHSEED'] = '0'
102
+
95
103
  random.seed(0) # Pythonの乱数シードを固定
96
104
 
97
105
  np.random.seed(0) # Numpyの乱数シードを固定
@@ -100,11 +108,17 @@
100
108
 
101
109
 
102
110
 
103
-
111
+ session_conf = tf.ConfigProto(
112
+
113
+ intra_op_parallelism_threads=1,
114
+
115
+ inter_op_parallelism_threads=1
116
+
117
+ )
104
118
 
105
119
  # セッションの開始
106
120
 
107
- tf_sess = tf.InteractiveSession()
121
+ tf_sess = tf.InteractiveSession(config=session_conf)
108
122
 
109
123
 
110
124
 
@@ -306,15 +320,9 @@
306
320
 
307
321
  [参考URL](http://www.algo-fx-blog.com/tensorflow-neural-network-fx/)
308
322
 
309
-
310
-
311
- ##発生している警告
312
-
313
- I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
323
+ [kerasで学習が再現できない人へ](https://qiita.com/okotaku/items/8d682a11d8f2370684c9)
314
-
315
-
316
-
317
- FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
324
+
325
+
318
326
 
319
327
 
320
328
 

21

ライブラリのバージョン変更

2019/07/20 06:35

投稿

Wind
Wind

スコア442

test CHANGED
@@ -1 +1 @@
1
- TensorFlow(CPU)でループ毎に異なる予測値になる(5/30ソースコード変更)
1
+ TensorFlow(CPU)でループ毎に異なる予測値になってしまう
test CHANGED
@@ -324,4 +324,4 @@
324
324
 
325
325
  Python :3.6.4 64-bit(base:conda)
326
326
 
327
- TensorFlow:1.12.0
327
+ TensorFlow:1.13.1

20

ソースコード調整

2019/07/20 05:49

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  import numpy as np
40
40
 
41
- from sklearn.preprocessing import MinMaxScaler
41
+ #from sklearn.preprocessing import MinMaxScaler
42
42
 
43
43
  from sklearn.preprocessing import StandardScaler
44
44
 

19

表の削除

2019/06/02 10:45

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -10,32 +10,6 @@
10
10
 
11
11
 
12
12
 
13
- ###現在の予測値(1個目)のイメージ
14
-
15
- |ループ回数| 実行1回目 | 実行2回目 | 実行3回目 |
16
-
17
- |:-------:|:-----------:|:------------:|:------------:|
18
-
19
- |i = 0| 100 | 100 | 100 |
20
-
21
- |i = 1| 90 | 90 | 90 |
22
-
23
- |i = 2| 120 | 120 | 120 |
24
-
25
- |i = 3| 105 | 105 | 105 |
26
-
27
- |i = 4| 130 | 130 | 130 |
28
-
29
- |i = 5| 110 | 110 | 110 |
30
-
31
- |i = 6| 125 | 125 | 125 |
32
-
33
- |i = 7| 92 | 92 | 92 |
34
-
35
- |i = 8| 96 | 96 | 96 |
36
-
37
- |i = 9| 130 | 130 | 130 |
38
-
39
13
 
40
14
 
41
15
  #知りたいこと

18

ソースコード調整

2019/06/01 09:21

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
  ※5/30 [sklearnボストンのデータセット](https://newtechnologylifestyle.net/%E3%83%9C%E3%82%B9%E3%83%88%E3%83%B3%E5%B8%82%E3%81%AE%E4%BD%8F%E5%AE%85%E4%BE%A1%E6%A0%BC%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%82%8B/)を使用して、コピペで動作が再現出来る物に差し替えました。
56
56
 
57
-  犯罪数を目的変数にして他の説明変数で学習し、予測する形になっています。
57
+  犯罪発生数を目的変数にして他の説明変数で学習し、予測する形になっています。
58
58
 
59
59
   実行すると、予測値が毎回異なってしまいます。
60
60
 
@@ -310,13 +310,13 @@
310
310
 
311
311
  pred_inv = ans[0] # 予測値
312
312
 
313
- y_test_inv = ans[1] # 犯罪数
313
+ y_test_inv = ans[1] # 犯罪発生
314
314
 
315
315
 
316
316
 
317
317
  np.set_printoptions(suppress=True, formatter={'float': '{: 0.3f}'.format}) #printで指数表示を禁止する、小数点第三位まで表示
318
318
 
319
- print('発生数:' , y_test_inv)
319
+ print('犯罪発生数:' , y_test_inv)
320
320
 
321
321
  print('予測値:' , pred_inv)
322
322
 

17

知りたいことを追記

2019/05/30 11:17

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -42,6 +42,8 @@
42
42
 
43
43
  ループで同じデータを入れた時に毎回同じ予測値を得るには、どうしたら良いのでしょうか?
44
44
 
45
+ もしくはCPUでも全く同じ値にはならないのでしょうか?
46
+
45
47
 
46
48
 
47
49
  (TensorFlowのニューラルネットワークを使用して学習して予測した時に、常に同じ予測値になるサンプルが書かれたURLを教えて頂けるだけでも助かります。)

16

ソースコードの説明追加

2019/05/30 08:49

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -52,7 +52,7 @@
52
52
 
53
53
  ※5/30 [sklearnボストンのデータセット](https://newtechnologylifestyle.net/%E3%83%9C%E3%82%B9%E3%83%88%E3%83%B3%E5%B8%82%E3%81%AE%E4%BD%8F%E5%AE%85%E4%BE%A1%E6%A0%BC%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%82%8B/)を使用して、コピペで動作が再現出来る物に差し替えました。
54
54
 
55
-  犯罪数を他の説明変数で学習し、予測する形になっています。
55
+  犯罪数を目的変数にして他の説明変数で学習し、予測する形になっています。
56
56
 
57
57
   実行すると、予測値が毎回異なってしまいます。
58
58
 

15

データセット説明のリンクを追加

2019/05/30 07:06

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  #ソースコード(再現動作可能)
52
52
 
53
- ※5/30 sklearnボストンのデータセットを使用して、コピペで動作が再現出来る物に差し替えました。
53
+ ※5/30 [sklearnボストンのデータセット](https://newtechnologylifestyle.net/%E3%83%9C%E3%82%B9%E3%83%88%E3%83%B3%E5%B8%82%E3%81%AE%E4%BD%8F%E5%AE%85%E4%BE%A1%E6%A0%BC%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%82%8B/)を使用して、コピペで動作が再現出来る物に差し替えました。
54
54
 
55
55
   犯罪数を他の説明変数で学習し、予測する形になっています。
56
56
 

14

説明変更

2019/05/30 07:04

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -54,7 +54,7 @@
54
54
 
55
55
   犯罪数を他の説明変数で学習し、予測する形になっています。
56
56
 
57
-  実行すると、予測値が毎回異なます。
57
+  実行すると、予測値が毎回異なってしいます。
58
58
 
59
59
  ```Python
60
60
 

13

タグ変更

2019/05/30 06:59

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
File without changes

12

タグ追加

2019/05/30 06:09

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
File without changes

11

ソースコード変更

2019/05/30 05:59

投稿

Wind
Wind

スコア442

test CHANGED
@@ -1 +1 @@
1
- TensorFlowCPU演算が、関数呼び出す毎に違う結果になってしまう。
1
+ TensorFlow(CPU)ループ毎に異なる予測値になる(5/30ソースコード変更)
test CHANGED
@@ -1,18 +1,16 @@
1
1
  #わからないこと
2
2
 
3
- 関数にTensorFlow(CPU版)を書いて、ループ毎回同じデータを渡しても、毎異なる結果になってしまいます。
3
+ TensorFlow(CPU版)で同じデータを渡して学習し予測しても、ループ異なる予測値になってしまいます。
4
-
5
-
6
-
4
+
5
+
6
+
7
- プログラム実行時は毎回同じ値にはなりますが、プログラム内部で関数を10回ループさせると10全て異なる値になります。
7
+ プログラム実行時は毎回同じ値にはなりますが、プログラム内部で関数をループさせると回異なる値になります。(初期化が足りないのでしょうか?)
8
-
9
- 関数に教師データとテストデータを入れて、同じ教師データとテストデータで学習して予測値を出しています。
10
8
 
11
9
  当然ですがデータのシャッフルは行わず、常に同一データを入れています。
12
10
 
13
11
 
14
12
 
15
- ###現在の結果のイメージ
13
+ ###現在の予測値(1個目)のイメージ
16
14
 
17
15
  |ループ回数| 実行1回目 | 実行2回目 | 実行3回目 |
18
16
 
@@ -42,21 +40,73 @@
42
40
 
43
41
  #知りたいこと
44
42
 
45
- ループで同じデータを入れた同じ結果を得るには、どうしたら良いのでしょうか?
43
+ ループで同じデータを入れた時に毎回同じ予測値を得るには、どうしたら良いのでしょうか?
46
-
47
-
48
-
44
+
45
+
46
+
49
- (TensorFlowのニューラルネットワークを使用して学習して予測した時に、常に同じ結果になるサンプルが書かれたURLを教えて頂けるだけでも助かります。)
47
+ (TensorFlowのニューラルネットワークを使用して学習して予測した時に、常に同じ予測値になるサンプルが書かれたURLを教えて頂けるだけでも助かります。)
50
-
51
-
52
-
48
+
49
+
50
+
53
- #ソースコード
51
+ #ソースコード(再現動作可能)
52
+
54
-
53
+ ※5/30 sklearnボストンのデータセットを使用して、コピペで動作が再現出来る物に差し替えました。
54
+
55
+  犯罪数を他の説明変数で学習し、予測する形になっています。
56
+
55
- 関数部分
57
+  実行すると、予測値が毎回異なります。
56
58
 
57
59
  ```Python
58
60
 
61
+ import pandas as pd
62
+
63
+ import numpy as np
64
+
65
+ from sklearn.preprocessing import MinMaxScaler
66
+
67
+ from sklearn.preprocessing import StandardScaler
68
+
69
+ import tensorflow as tf
70
+
71
+ import random
72
+
73
+
74
+
75
+ # サンプルデータセット(ボストン)
76
+
77
+ from sklearn.datasets import load_boston
78
+
79
+ boston = load_boston()
80
+
81
+
82
+
83
+
84
+
85
+ #y_bos = pd.DataFrame( boston.target) # 価格は使用しない
86
+
87
+ pd_bos = pd.DataFrame(boston.data, columns=boston.feature_names)
88
+
89
+
90
+
91
+ bos_test = pd_bos.iloc[0:100, :] # 行 0~100をテストデータにする
92
+
93
+ bos_train = pd_bos.iloc[100:500, :] # 行 101~500を訓練データにする
94
+
95
+
96
+
97
+ data_columns = bos_train.columns.values[1:] # 説明変数の名前を取得(犯罪数CRIMは目的変数とするので除外)
98
+
99
+ #print('説明変数:%s' % data_columns) # 説明変数を表示
100
+
101
+
102
+
103
+
104
+
105
+ # DL関数(学習データ, テストデータ)
106
+
107
+ # 返り値:予測値, 犯罪数
108
+
59
- def tf_cross(dat_train, dat_test):
109
+ def tf_cross(val_train, val_test):
60
110
 
61
111
  # ニューロンの数を設定
62
112
 
@@ -66,6 +116,22 @@
66
116
 
67
117
 
68
118
 
119
+ random.seed(0) # Pythonの乱数シードを固定
120
+
121
+ np.random.seed(0) # Numpyの乱数シードを固定
122
+
123
+ tf.set_random_seed(0) # TensorFlowの乱数シードを固定
124
+
125
+
126
+
127
+
128
+
129
+ # セッションの開始
130
+
131
+ tf_sess = tf.InteractiveSession()
132
+
133
+
134
+
69
135
  # random.seed(0) # Pythonの乱数シードを固定
70
136
 
71
137
  # np.random.seed(0) # Numpyの乱数シードを固定
@@ -74,60 +140,188 @@
74
140
 
75
141
 
76
142
 
77
- # セッションの開始
78
-
79
- tf_sess = tf.InteractiveSession()
80
-
81
- # tf_sess = tf.Session()
82
-
83
-
84
-
85
- random.seed(0) # Pythonの乱数シードを固定
86
-
87
- np.random.seed(0) # Numpyの乱数シードを固定
88
-
89
- tf.set_random_seed(0) # TensorFlowシード固定
90
-
91
-
92
-
93
-
94
-
95
- scaler = StandardScaler() # 標準化
96
-
97
- scaler.fit(dat_train)
98
-
99
- dat_train_std = scaler.transform(dat_train)
100
-
101
- dat_test_std = scaler.transform(dat_test)
102
-
103
-
104
-
105
- # 中略(処理内容やパラメータは基本的に下記の参考URLと同じ)
106
-
107
- # 概要はdat_trainで学習してdat_testの予測値を出す
108
-
109
-
110
-
111
- tf_sess.close() # セッションを閉じる
112
-
113
- return ans # 結果返す
143
+ #値を標準化
144
+
145
+ scaler = StandardScaler()
146
+
147
+ scaler.fit(val_train)
148
+
149
+ val_train_std = scaler.transform(val_train)
150
+
151
+ val_test_std = scaler.transform(val_test)
152
+
153
+
154
+
155
+ y_train_std = val_train_std[:, 0] # 訓練データ目的変数を取得(先頭列)
156
+
157
+ X_train_std = val_train_std[:, 1:] # 訓練データの説明変数を取得(2列目以降)
158
+
159
+ y_test_std = val_test_std[:, 0] # テストデータの目的変数
160
+
161
+ X_test_std = val_test_std[:, 1:] # テストデータの説明変数
162
+
163
+
164
+
165
+ # テストデータの目的変数を標準化から通常の値へ戻す
166
+
167
+ y_test = y_test_std.reshape(len(y_test_std), 1)
168
+
169
+ y_test_inv = np.concatenate((y_test, X_test_std), axis=1)
170
+
171
+ y_test_inv = scaler.inverse_transform(y_test_inv)
172
+
173
+ y_test_inv = y_test_inv[:, 0]
174
+
175
+
176
+
177
+
178
+
179
+ # 訓練データの特徴量の"数"取得
180
+
181
+ n_stocks = X_train_std.shape[1] # shape[1]は列数
182
+
183
+
184
+
185
+
186
+
187
+ # プレースホルダーの作成
188
+
189
+ X = tf.placeholder(dtype=tf.float32, shape=[None, n_stocks])
190
+
191
+ Y = tf.placeholder(dtype=tf.float32, shape=[None])
192
+
193
+
194
+
195
+
196
+
197
+ # 初期化
198
+
199
+ sigma = 1
200
+
201
+ weight_initializer = tf.variance_scaling_initializer(mode="fan_avg", distribution="uniform", scale=sigma)
202
+
203
+ bias_initializer = tf.zeros_initializer()
204
+
205
+
206
+
207
+ # Hidden weights
208
+
209
+ W_hidden_1 = tf.Variable(weight_initializer([n_stocks, n_neurons_1]))
210
+
211
+ bias_hidden_1 = tf.Variable(bias_initializer([n_neurons_1]))
212
+
213
+ W_hidden_2 = tf.Variable(weight_initializer([n_neurons_1, n_neurons_2]))
214
+
215
+ bias_hidden_2 = tf.Variable(bias_initializer([n_neurons_2]))
216
+
217
+
218
+
219
+
220
+
221
+ # 出力の重み
222
+
223
+ W_out = tf.Variable(weight_initializer([n_neurons_2, 1])) # 2層
224
+
225
+ bias_out = tf.Variable(bias_initializer([1]))
226
+
227
+
228
+
229
+ # 隠れ層の設定(ReLU=活性化関数)(収束がすばやいが、極端な出力値が生成される可能性がある)
230
+
231
+ # hidden_1 = tf.nn.relu(tf.add(tf.matmul(X, W_hidden_1), bias_hidden_1))
232
+
233
+ # hidden_2 = tf.nn.relu(tf.add(tf.matmul(hidden_1, W_hidden_2), bias_hidden_2))
234
+
235
+
236
+
237
+ # 隠れ層の設定:活性化関数をシグモイド(極端な出力値が少ないが、収束が遅い)
238
+
239
+ hidden_1 = tf.nn.sigmoid(tf.add(tf.matmul(X, W_hidden_1), bias_hidden_1))
240
+
241
+ hidden_2 = tf.nn.sigmoid(tf.add(tf.matmul(hidden_1, W_hidden_2), bias_hidden_2))
242
+
243
+
244
+
245
+ # 出力層の設定
246
+
247
+ out = tf.transpose(tf.add(tf.matmul(hidden_2, W_out), bias_out))
248
+
249
+
250
+
251
+ # コスト関数
252
+
253
+ mse = tf.reduce_mean(tf.squared_difference(out, Y))
254
+
255
+ # 最適化関数
256
+
257
+ opt = tf.train.AdamOptimizer().minimize(mse)
258
+
259
+ # 全ての変数を初期化
260
+
261
+ tf_sess.run(tf.global_variables_initializer())
262
+
263
+
264
+
265
+ # ニューラルネットワークの設定
266
+
267
+ batch_size = 128
268
+
269
+
270
+
271
+ # 訓練開始 n回の反復処理
272
+
273
+ epochs = 100
274
+
275
+ for e in range(epochs):
276
+
277
+ tf_sess.run(opt, feed_dict={X: X_train_std, Y: y_train_std}) # 標準化されたデータで訓練
278
+
279
+
280
+
281
+ # テストデータで予測
282
+
283
+ pred_test = tf_sess.run(out, feed_dict = {X: X_test_std})
284
+
285
+
286
+
287
+ pred_test = np.concatenate((pred_test.T, X_test_std), axis=1)
288
+
289
+ pred_inv = scaler.inverse_transform(pred_test) # 標準化から戻す
290
+
291
+ pred_inv = pred_inv[:, 0] # 1行目だけ取り出す(予測値)
292
+
293
+ tf_sess.close() # セッションを閉じる
294
+
295
+
296
+
297
+ return pred_inv, y_test_inv # 予測値と犯罪数を返す
298
+
299
+
300
+
301
+
302
+
303
+ # ループ
304
+
305
+ for dat in data_columns: # カラム数-1でループ
306
+
307
+ ans = tf_cross(bos_train, bos_test) # ***同じデータを毎回渡しているだけなのに、毎回同じ結果にならない***
308
+
309
+ pred_inv = ans[0] # 予測値
310
+
311
+ y_test_inv = ans[1] # 犯罪数
312
+
313
+
314
+
315
+ np.set_printoptions(suppress=True, formatter={'float': '{: 0.3f}'.format}) #printで指数表示を禁止する、小数点第三位まで表示
316
+
317
+ print('発生数:' , y_test_inv)
318
+
319
+ print('予測値:' , pred_inv)
320
+
321
+
114
322
 
115
323
  ```
116
324
 
117
- 呼び出し部分
118
-
119
- ```Python
120
-
121
- data_columns = data_train.columns.values[1:] # 項目名の取得
122
-
123
- # data_trainとdata_testへの加工は一切無し(将来的には加工して比較する予定)
124
-
125
- for dat in data_columns: # データの項目数でループ
126
-
127
- ans = tf_cross(data_train, data_test) # 毎回同じデータを渡しているだけなのに、毎回異なる結果になる
128
-
129
- ```
130
-
131
325
 
132
326
 
133
327
 

10

表の修正

2019/05/30 05:56

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ###現在の結果のイメージ
16
16
 
17
- |ループ回数| 起動1回目 | 起動2回目 | 起動3回目 |
17
+ |ループ回数| 実行1回目 | 実行2回目 | 実行3回目 |
18
18
 
19
19
  |:-------:|:-----------:|:------------:|:------------:|
20
20
 

9

表を追記

2019/05/30 02:06

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -9,6 +9,34 @@
9
9
  関数に教師データとテストデータを入れて、同じ教師データとテストデータで学習して予測値を出しています。
10
10
 
11
11
  当然ですがデータのシャッフルは行わず、常に同一データを入れています。
12
+
13
+
14
+
15
+ ###現在の結果のイメージ
16
+
17
+ |ループ回数| 起動1回目 | 起動2回目 | 起動3回目 |
18
+
19
+ |:-------:|:-----------:|:------------:|:------------:|
20
+
21
+ |i = 0| 100 | 100 | 100 |
22
+
23
+ |i = 1| 90 | 90 | 90 |
24
+
25
+ |i = 2| 120 | 120 | 120 |
26
+
27
+ |i = 3| 105 | 105 | 105 |
28
+
29
+ |i = 4| 130 | 130 | 130 |
30
+
31
+ |i = 5| 110 | 110 | 110 |
32
+
33
+ |i = 6| 125 | 125 | 125 |
34
+
35
+ |i = 7| 92 | 92 | 92 |
36
+
37
+ |i = 8| 96 | 96 | 96 |
38
+
39
+ |i = 9| 130 | 130 | 130 |
12
40
 
13
41
 
14
42
 

8

知りたいことを追記

2019/05/30 01:46

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- (ニューラルネットワークを使用して学習して予測した時に、常に同じ結果になるサンプルが書かれたURLを教えて頂けるだけでも助かります。)
21
+ TensorFlowのニューラルネットワークを使用して学習して予測した時に、常に同じ結果になるサンプルが書かれたURLを教えて頂けるだけでも助かります。)
22
22
 
23
23
 
24
24
 

7

知りたいことを追記

2019/05/30 01:34

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,10 @@
15
15
  #知りたいこと
16
16
 
17
17
  ループで同じデータを入れたら同じ結果を得るには、どうしたら良いのでしょうか?
18
+
19
+
20
+
21
+ (ニューラルネットワークを使用して学習して予測した時に、常に同じ結果になるサンプルが書かれたURLを教えて頂けるだけでも助かります。)
18
22
 
19
23
 
20
24
 

6

わからないことの詳細を追記

2019/05/30 01:32

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,19 @@
2
2
 
3
3
  関数にTensorFlow(CPU版)を書いて、ループで毎回同じデータを渡しても、毎回異なる結果になってしまいます。
4
4
 
5
- (プログラム実行時は毎回同じ値にはなりますが、プログラム内部で10回ループさせると10回全て異なる値になります。データのシャッフルは行っていません。)
6
5
 
6
+
7
+ プログラム実行時は毎回同じ値にはなりますが、プログラム内部で関数を10回ループさせると10回全て異なる値になります。
8
+
9
+ 関数に教師データとテストデータを入れて、同じ教師データとテストデータで学習して予測値を出しています。
10
+
11
+ 当然ですがデータのシャッフルは行わず、常に同一データを入れています。
12
+
13
+
14
+
15
+ #知りたいこと
16
+
7
- ループで同じデータを入れたら同じ結果になするには、どうしたら良いのでしょうか?
17
+ ループで同じデータを入れたら同じ結果を得るには、どうしたら良いのでしょうか?
8
18
 
9
19
 
10
20
 

5

わからないことを修正

2019/05/30 01:24

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,8 @@
1
1
  #わからないこと
2
2
 
3
3
  関数にTensorFlow(CPU版)を書いて、ループで毎回同じデータを渡しても、毎回異なる結果になってしまいます。
4
+
5
+ (プログラム実行時は毎回同じ値にはなりますが、プログラム内部で10回ループさせると10回全て異なる値になります。データのシャッフルは行っていません。)
4
6
 
5
7
  ループで同じデータを入れたら同じ結果になる様にするには、どうしたら良いのでしょうか?
6
8
 
@@ -86,6 +88,8 @@
86
88
 
87
89
 
88
90
 
91
+
92
+
89
93
  ##参考URL
90
94
 
91
95
  [参考URL](http://www.algo-fx-blog.com/tensorflow-neural-network-fx/)

4

ソースコードの修正

2019/05/30 01:16

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -22,6 +22,22 @@
22
22
 
23
23
 
24
24
 
25
+ # random.seed(0) # Pythonの乱数シードを固定
26
+
27
+ # np.random.seed(0) # Numpyの乱数シードを固定
28
+
29
+ # tf.set_random_seed(0) # TensorFlowの乱数シードを固定
30
+
31
+
32
+
33
+ # セッションの開始
34
+
35
+ tf_sess = tf.InteractiveSession()
36
+
37
+ # tf_sess = tf.Session()
38
+
39
+
40
+
25
41
  random.seed(0) # Pythonの乱数シードを固定
26
42
 
27
43
  np.random.seed(0) # Numpyの乱数シードを固定
@@ -29,10 +45,6 @@
29
45
  tf.set_random_seed(0) # TensorFlowの乱数シードを固定
30
46
 
31
47
 
32
-
33
- # セッションの開始
34
-
35
- tf_sess = tf.InteractiveSession()
36
48
 
37
49
 
38
50
 

3

ソースコードの修正

2019/05/30 00:22

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  # セッションの開始
34
34
 
35
- net = tf.InteractiveSession()
35
+ tf_sess = tf.InteractiveSession()
36
36
 
37
37
 
38
38
 
@@ -52,7 +52,7 @@
52
52
 
53
53
 
54
54
 
55
- net.close() # セッションを閉じる
55
+ tf_sess.close() # セッションを閉じる
56
56
 
57
57
  return ans # 結果を返す
58
58
 

2

ソースコードにコメント追記

2019/05/30 00:21

投稿

Wind
Wind

スコア442

test CHANGED
File without changes
test CHANGED
@@ -48,6 +48,8 @@
48
48
 
49
49
  # 中略(処理内容やパラメータは基本的に下記の参考URLと同じ)
50
50
 
51
+ # 概要はdat_trainで学習してdat_testの予測値を出す
52
+
51
53
 
52
54
 
53
55
  net.close() # セッションを閉じる

1

タイトル修正

2019/05/29 12:25

投稿

Wind
Wind

スコア442

test CHANGED
@@ -1 +1 @@
1
- TensorFlowのCPU演算、関数で呼び出す毎に違う結果になってしまう。
1
+ TensorFlowのCPU演算、関数で呼び出す毎に違う結果になってしまう。
test CHANGED
File without changes