質問編集履歴
5
typoを修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -172,11 +172,11 @@
|
|
172
172
|
|
173
173
|
```
|
174
174
|
|
175
|
-
File "/home/
|
175
|
+
File "/home/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/numpy/core/fromnumeric.py", line 2772, in prod
|
176
176
|
|
177
177
|
initial=initial)
|
178
178
|
|
179
|
-
File "/home/
|
179
|
+
File "/home/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/numpy/core/fromnumeric.py", line 86, in _wrapreduction
|
180
180
|
|
181
181
|
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
|
182
182
|
|
4
追記を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -157,3 +157,31 @@
|
|
157
157
|
|
158
158
|
|
159
159
|
解決策をご存知の方は教えていただけると幸いです。
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
## 追記
|
164
|
+
|
165
|
+
```python
|
166
|
+
|
167
|
+
ref.set_shape(init_value().shape)
|
168
|
+
|
169
|
+
```
|
170
|
+
|
171
|
+
をref.batch_scatter_updateの前の行に追記することでshapeのエラーはとりあえず出なくなりましたが、以下のエラーが出るようになりました。
|
172
|
+
|
173
|
+
```
|
174
|
+
|
175
|
+
File "/home/lr/fujisyo/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/numpy/core/fromnumeric.py", line 2772, in prod
|
176
|
+
|
177
|
+
initial=initial)
|
178
|
+
|
179
|
+
File "/home/lr/fujisyo/.pyenv/versions/anaconda3-5.3.1/envs/tensorflow_gpuenv/lib/python3.6/site-packages/numpy/core/fromnumeric.py", line 86, in _wrapreduction
|
180
|
+
|
181
|
+
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
|
182
|
+
|
183
|
+
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
|
184
|
+
|
185
|
+
```
|
186
|
+
|
187
|
+
おそらくこれもinitial_valueに関数を指定しているせいで、typeがうまく参照されてないように思うのですが、直し方がわからないのでわかる方は教えていただけると幸いです。
|
3
誤字の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,26 +1,6 @@
|
|
1
1
|
## 実現したいこと
|
2
2
|
|
3
|
-
BasicDecoderを継承したクラスの
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
## 問題が発生するまでの流れ
|
8
|
-
|
9
|
-
通常のBasicDecoderの代わりにそれを継承した以下のようなクラスを使おうとしました。
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
RNNの内側でVariableを定義する際のinitial_valueにTensorをそのまま指定すると`ValueError: Initializer for variable model/decoder/while/BasicDecoderStep/Variable/ is from inside a control-flow construct, such as a loop or conditional. When creating a variab
|
14
|
-
|
15
|
-
le inside a loop or conditional, use a lambda as the initializer.`
|
16
|
-
|
17
|
-
と言うエラーが発生するためTensorではなく関数をinitial_valueに指定しました。
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
それによってbatch_scatter_updateの出力のshapeが<unknown>になり、そのせいでその後の処理のshapeを参照する箇所で以下のエラーが出てしまっているように思われます。
|
22
|
-
|
23
|
-
|
3
|
+
BasicDecoderを継承したクラスのstep関数の内側でbatch_scatter_updateを使おうとしています。
|
24
4
|
|
25
5
|
|
26
6
|
|
@@ -144,6 +124,24 @@
|
|
144
124
|
|
145
125
|
```
|
146
126
|
|
127
|
+
## 問題が発生するまでの流れ
|
128
|
+
|
129
|
+
通常のBasicDecoderの代わりにそれを継承した以下のようなクラスを使おうとしました。
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
RNNの内側でVariableを定義する際のinitial_valueにTensorをそのまま指定すると`ValueError: Initializer for variable model/decoder/while/BasicDecoderStep/Variable/ is from inside a control-flow construct, such as a loop or conditional. When creating a variab
|
134
|
+
|
135
|
+
le inside a loop or conditional, use a lambda as the initializer.`
|
136
|
+
|
137
|
+
というエラーが発生するためTensorではなく関数をinitial_valueに指定しました。
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
それによってbatch_scatter_updateの出力のshapeが<unknown>になり、そのせいでその後の処理のshapeを参照する箇所で上記のエラーが出てしまっているように思われます。
|
142
|
+
|
143
|
+
|
144
|
+
|
147
145
|
|
148
146
|
|
149
147
|
## 環境
|
2
詳細の記述を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,10 +1,30 @@
|
|
1
|
-
|
1
|
+
## 実現したいこと
|
2
|
+
|
3
|
+
BasicDecoderを継承したクラスののstep関数の内側でbatch_scatter_updateを使おうとしています。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
## 問題が発生するまでの流れ
|
8
|
+
|
9
|
+
通常のBasicDecoderの代わりにそれを継承した以下のようなクラスを使おうとしました。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
RNNの内側でVariableを定義する際のinitial_valueにTensorをそのまま指定すると`ValueError: Initializer for variable model/decoder/while/BasicDecoderStep/Variable/ is from inside a control-flow construct, such as a loop or conditional. When creating a variab
|
14
|
+
|
15
|
+
le inside a loop or conditional, use a lambda as the initializer.`
|
16
|
+
|
17
|
+
と言うエラーが発生するためTensorではなく関数をinitial_valueに指定しました。
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
それによってbatch_scatter_updateの出力のshapeが<unknown>になり、そのせいでその後の処理のshapeを参照する箇所で以下のエラーが出てしまっているように思われます。
|
2
22
|
|
3
23
|
|
4
24
|
|
5
25
|
|
6
26
|
|
7
|
-
ソースコード(簡単のためにあまり意味がないコードになっています)
|
27
|
+
## ソースコード(簡単のためにあまり意味がないコードになっています)
|
8
28
|
|
9
29
|
```python
|
10
30
|
|
@@ -100,7 +120,7 @@
|
|
100
120
|
|
101
121
|
|
102
122
|
|
103
|
-
エラーの内容
|
123
|
+
## エラーの内容
|
104
124
|
|
105
125
|
```
|
106
126
|
|
@@ -123,3 +143,19 @@
|
|
123
143
|
TypeError: 'NoneType' object is not subscriptable
|
124
144
|
|
125
145
|
```
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
## 環境
|
150
|
+
|
151
|
+
OSはUbuntu 16.04.5
|
152
|
+
|
153
|
+
Pythonのバージョンは3.6.8
|
154
|
+
|
155
|
+
Tensorflowのバージョンは1.13.1
|
156
|
+
|
157
|
+
です。
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
解決策をご存知の方は教えていただけると幸いです。
|
1
ソースコードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
self.internal_size, name="W", use_bias=False)
|
40
40
|
|
41
|
-
self.index = tf.tile(tf.expand_dims(tf.range(self.internal_size), axis=0), [
|
41
|
+
self.index = tf.tile(tf.expand_dims(tf.range(self.internal_size), axis=0), [batch_size, 1])
|
42
42
|
|
43
43
|
|
44
44
|
|
@@ -66,13 +66,13 @@
|
|
66
66
|
|
67
67
|
[self.batch_size, 1])
|
68
68
|
|
69
|
-
|
69
|
+
ref = tf.Variable(
|
70
70
|
|
71
|
-
t
|
71
|
+
initial_value=init_value, validate_shape=False)
|
72
72
|
|
73
|
-
|
73
|
+
scatter = ref.batch_scatter_update(
|
74
74
|
|
75
|
-
|
75
|
+
tf.IndexedSlices(weight, self.index))
|
76
76
|
|
77
77
|
cell_outputs = scatter
|
78
78
|
|