回答編集履歴

4

edit

2018/06/21 11:13

投稿

mkgrei
mkgrei

スコア8560

test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
 
40
40
 
41
- 普通にやると187//2=93になるので、注意が必要です。
41
+ 普通にやると(20//2)*(187//2)=930になるので、注意が必要です。
42
42
 
43
43
  20*187//4=935なので、これも正しくありません。
44
44
 

3

edit

2018/06/21 11:13

投稿

mkgrei
mkgrei

スコア8560

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  縦も横も。padding="SAME"で
28
28
 
29
- 20x189 -> 10x94
29
+ 20x187 -> 10x94
30
30
 
31
31
  になるはずです。
32
32
 

2

edit

2018/06/21 11:12

投稿

mkgrei
mkgrei

スコア8560

test CHANGED
@@ -41,3 +41,61 @@
41
41
  普通にやると187//2=93になるので、注意が必要です。
42
42
 
43
43
  20*187//4=935なので、これも正しくありません。
44
+
45
+
46
+
47
+ ---
48
+
49
+
50
+
51
+ EagerExecutionするとデバッグが楽です。
52
+
53
+ Tensorflowのバージョンにお気をつけください。
54
+
55
+
56
+
57
+ ```python
58
+
59
+ import numpy as np
60
+
61
+ import tensorflow as tf
62
+
63
+ import tensorflow.contrib.eager as tfe
64
+
65
+
66
+
67
+ tf.enable_eager_execution()
68
+
69
+
70
+
71
+ mmm = 10
72
+
73
+ labels = tf.constant(np.random.random(size=(mmm, 3)), dtype=tf.float32)
74
+
75
+ mfccs = tf.constant(np.random.random(size=(mmm, 3740)), dtype=tf.float32)
76
+
77
+
78
+
79
+ num_filters = 16
80
+
81
+
82
+
83
+ #x = tf.placeholder(tf.float32, [None, 3740])
84
+
85
+ x = mfccs
86
+
87
+
88
+
89
+ x_image = tf.reshape(x, [-1,20,187,1])
90
+
91
+
92
+
93
+ W_conv = tfe.Variable(tf.truncated_normal([5,5,1,num_filters], stddev=0.1))
94
+
95
+ h_conv = tf.nn.conv2d(x_image, W_conv, strides=[1,1,1,1], padding='SAME')
96
+
97
+ h_pool =tf.nn.max_pool(h_conv, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME')
98
+
99
+ print(tf.shape(h_pool))
100
+
101
+ ```

1

edit

2018/06/21 11:11

投稿

mkgrei
mkgrei

スコア8560

test CHANGED
@@ -11,3 +11,33 @@
11
11
 
12
12
 
13
13
  というのも、ネットワーク内のパラメータをチューニングすることは珍しくなく、このままだと今後パラメータをいじるたびに各層のパラメータの整合性を人力で確かめる必要があるからです。
14
+
15
+
16
+
17
+ ---
18
+
19
+
20
+
21
+ ちなみに理由ですが、
22
+
23
+
24
+
25
+ Poolingすると半分になります。
26
+
27
+ 縦も横も。padding="SAME"で
28
+
29
+ 20x189 -> 10x94
30
+
31
+ になるはずです。
32
+
33
+
34
+
35
+ コードを見ると1870なので、ずれています。
36
+
37
+ 正しくは940です。
38
+
39
+
40
+
41
+ 普通にやると187//2=93になるので、注意が必要です。
42
+
43
+ 20*187//4=935なので、これも正しくありません。