質問編集履歴

1

「コードの挿入」を用いて、コードを書き直しました

2020/10/03 02:51

投稿

KentaNakamoto
KentaNakamoto

スコア23

test CHANGED
File without changes
test CHANGED
@@ -6,12 +6,20 @@
6
6
 
7
7
  Google Colaboratoryにおいて、StyleGANを利用しようとしています。
8
8
 
9
+
10
+
9
- http://cedro3.com/ai/stylegan/ を参考にしながらやってみたのですが、importの部分で'tensorflow' has no attribute 'Dimension'というエラーがでてしまいます(このエラーについてググってみましたが、どうすれば解決するのかよくわかりませんでした)。
11
+ [StyleGANの学習済みモデルでサクッと遊んでみる](http://cedro3.com/ai/stylegan/)を参考にしながらやってみたのですが、importの部分で'tensorflow' has no attribute 'Dimension'というエラーがでてしまいます(このエラーについてググってみましたが、どうすれば解決するのかよくわかりませんでした)。
10
12
 
11
13
  ちなみに、Ubuntuのバージョンは、18.04.5で、Pythonのバージョンは3.6.9です。
12
14
 
13
15
  TensorFlowのバージョンは、2.3.0でして、1.14.0に変更もしてやってみましたが、こちらもNo module named 'dnnlib'というエラーが出てしまっています(こちらも、どのように解決すればいいのかわかりませんでした)。
14
16
 
17
+
18
+
19
+ コードが悪いのかと思いまして[Google ColaboratoryでStyleGANを使ってみた。](https://qiita.com/Phoeboooo/items/12d21916de56d125f0be)も参考にしてみましたが、同じエラーがでました(ライブラリのimportがうまくいっていないので、そりゃ同じエラーが出ますよね)
20
+
21
+
22
+
15
23
  Python初心者でして、何がいけないのかよくわかっておりません。
16
24
 
17
25
  申し訳ありませんが、よろしくお願いいたします。
@@ -20,93 +28,177 @@
20
28
 
21
29
 
22
30
 
31
+ ### コード
32
+
33
+ ```Python
34
+
35
+ import os
36
+
37
+ import pickle
38
+
39
+ import numpy as np
40
+
41
+ import PIL.Image
42
+
43
+ import dnnlib
44
+
45
+ import dnnlib.tflib as tflib
46
+
47
+ import config
48
+
49
+
50
+
51
+ def main():
52
+
53
+ # Initialize TensorFlow.
54
+
55
+ tflib.init_tf()
56
+
57
+
58
+
59
+ # Load pre-trained network.
60
+
61
+ url = 'https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ' # karras2019stylegan-ffhq-1024x1024.pkl
62
+
63
+ with dnnlib.util.open_url(url, cache_dir=config.cache_dir) as f:
64
+
65
+ _G, _D, Gs = pickle.load(f)
66
+
67
+ # _G = Instantaneous snapshot of the generator. Mainly useful for resuming a previous training run.
68
+
69
+ # _D = Instantaneous snapshot of the discriminator. Mainly useful for resuming a previous training run.
70
+
71
+ # Gs = Long-term average of the generator. Yields higher-quality results than the instantaneous snapshot.
72
+
73
+
74
+
75
+ # Print network details.
76
+
77
+ Gs.print_layers()
78
+
79
+
80
+
81
+ # Pick latent vector.
82
+
83
+ rnd = np.random.RandomState(10) # seed = 10
84
+
85
+ latents0 = rnd.randn(1, Gs.input_shape[1])
86
+
87
+ latents1 = rnd.randn(1, Gs.input_shape[1])
88
+
89
+ latents2 = rnd.randn(1, Gs.input_shape[1])
90
+
91
+ latents3 = rnd.randn(1, Gs.input_shape[1])
92
+
93
+ latents4 = rnd.randn(1, Gs.input_shape[1])
94
+
95
+ latents5 = rnd.randn(1, Gs.input_shape[1])
96
+
97
+ latents6 = rnd.randn(1, Gs.input_shape[1])
98
+
99
+
100
+
101
+ num_split = 39 # 2つのベクトルを39分割
102
+
103
+ for i in range(40):
104
+
105
+ latents = latents6+(latents0-latents6)*i/num_split
106
+
107
+ # Generate image.
108
+
109
+ fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)
110
+
111
+ images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt)
112
+
113
+
114
+
115
+ # Save image.
116
+
117
+ os.makedirs(config.result_dir, exist_ok=True)
118
+
119
+ png_filename = os.path.join(config.result_dir, 'photo'+'{0:04d}'.format(i)+'.png')
120
+
121
+ PIL.Image.fromarray(images[0], 'RGB').save(png_filename)
122
+
123
+
124
+
125
+ if __name__ == "__main__":
126
+
127
+ main()
128
+
129
+ ```
130
+
131
+
132
+
133
+ ---------------------------------------------------------------------------
134
+
135
+
136
+
23
137
  ### 発生している問題・エラーメッセージ
24
138
 
25
-
26
-
27
- import os
28
-
29
- import pickle
30
-
31
- import numpy as np
32
-
33
- import PIL.Image
34
-
35
- import dnnlib
36
-
37
- import dnnlib.tflib as tflib
38
-
39
- import config
40
-
41
-
42
-
43
- def main():
44
-
45
-
46
-
47
- tflib.init_tf()
48
-
49
-
50
-
51
-
52
-
53
- url = 'https://drive.google.com/uc?id=1MEGjdvVpUsu1jB4zrXZN7Y4kBBOzizDQ' # karras2019stylegan-ffhq-1024x1024.pkl
54
-
55
- with dnnlib.util.open_url(url, cache_dir=config.cache_dir) as f:
56
-
57
- _G, _D, Gs = pickle.load(f)
58
-
59
- snapshot.
60
-
61
-
62
-
63
- Gs.print_layers()
64
-
65
-
66
-
67
- rnd = np.random.RandomState(10) # seed = 10
68
-
69
- latents0 = rnd.randn(1, Gs.input_shape[1])
70
-
71
- latents1 = rnd.randn(1, Gs.input_shape[1])
72
-
73
- latents2 = rnd.randn(1, Gs.input_shape[1])
74
-
75
- latents3 = rnd.randn(1, Gs.input_shape[1])
76
-
77
- latents4 = rnd.randn(1, Gs.input_shape[1])
78
-
79
- latents5 = rnd.randn(1, Gs.input_shape[1])
80
-
81
- latents6 = rnd.randn(1, Gs.input_shape[1])
82
-
83
-
84
-
85
- num_split = 39 # 2つのベクトルを39分割
86
-
87
- for i in range(40):
88
-
89
- latents = latents6+(latents0-latents6)*i/num_split
90
-
91
-
92
-
93
- fmt = dict(func=tflib.convert_images_to_uint8, nchw_to_nhwc=True)
94
-
95
- images = Gs.run(latents, None, truncation_psi=0.7, randomize_noise=True, output_transform=fmt)
96
-
97
-
98
-
99
- os.makedirs(config.result_dir, exist_ok=True)
100
-
101
- png_filename = os.path.join(config.result_dir, 'photo'+'{0:04d}'.format(i)+'.png')
102
-
103
- PIL.Image.fromarray(images[0], 'RGB').save(png_filename)
104
-
105
-
106
-
107
- if __name__ == "__main__":
108
-
109
- main()
139
+ ```Python
140
+
141
+ AttributeError Traceback (most recent call last)
142
+
143
+ <ipython-input-6-ece5f04dab83> in <module>()
144
+
145
+ 4 import PIL.Image
146
+
147
+ 5 import dnnlib
148
+
149
+ ----> 6 import dnnlib.tflib as tflib
150
+
151
+ 7 import config
152
+
153
+ 8
154
+
155
+
156
+
157
+ /content/drive/My Drive/stylegan/dnnlib/tflib/__init__.py in <module>()
158
+
159
+ 6 # Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
160
+
161
+ 7
162
+
163
+ ----> 8 from . import autosummary
164
+
165
+ 9 from . import network
166
+
167
+ 10 from . import optimizer
168
+
169
+
170
+
171
+ /content/drive/My Drive/stylegan/dnnlib/tflib/autosummary.py in <module>()
172
+
173
+ 29 from tensorboard.plugins.custom_scalar import layout_pb2
174
+
175
+ 30
176
+
177
+ ---> 31 from . import tfutil
178
+
179
+ 32 from .tfutil import TfExpression
180
+
181
+ 33 from .tfutil import TfExpressionEx
182
+
183
+
184
+
185
+ /content/drive/My Drive/stylegan/dnnlib/tflib/tfutil.py in <module>()
186
+
187
+ 32
188
+
189
+ 33
190
+
191
+ ---> 34 def shape_to_list(shape: Iterable[tf.Dimension]) -> List[Union[int, None]]:
192
+
193
+ 35 """Convert a Tensorflow shape to a list of ints."""
194
+
195
+ 36 return [dim.value for dim in shape]
196
+
197
+
198
+
199
+ AttributeError: module 'tensorflow' has no attribute 'Dimension'
200
+
201
+ ```
110
202
 
111
203
 
112
204
 
@@ -114,92 +206,28 @@
114
206
 
115
207
 
116
208
 
209
+ また、1.14.0では、以下のようなエラーが出てきます
210
+
211
+
212
+
213
+ ```Python
214
+
117
- AttributeError Traceback (most recent call last)
215
+ ModuleNotFoundError Traceback (most recent call last)
118
-
216
+
119
- <ipython-input-6-ece5f04dab83> in <module>()
217
+ <ipython-input-1-ece5f04dab83> in <module>()
218
+
219
+ 3 import numpy as np
120
220
 
121
221
  4 import PIL.Image
122
222
 
123
- 5 import dnnlib
223
+ ----> 5 import dnnlib
124
-
224
+
125
- ----> 6 import dnnlib.tflib as tflib
225
+ 6 import dnnlib.tflib as tflib
126
226
 
127
227
  7 import config
128
228
 
129
- 8
130
-
131
-
132
-
133
- /content/drive/My Drive/stylegan/dnnlib/tflib/__init__.py in <module>()
134
-
135
- 6 # Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
136
-
137
- 7
138
-
139
- ----> 8 from . import autosummary
140
-
141
- 9 from . import network
142
-
143
- 10 from . import optimizer
144
-
145
-
146
-
147
- /content/drive/My Drive/stylegan/dnnlib/tflib/autosummary.py in <module>()
148
-
149
- 29 from tensorboard.plugins.custom_scalar import layout_pb2
150
-
151
- 30
152
-
153
- ---> 31 from . import tfutil
154
-
155
- 32 from .tfutil import TfExpression
156
-
157
- 33 from .tfutil import TfExpressionEx
158
-
159
-
160
-
161
- /content/drive/My Drive/stylegan/dnnlib/tflib/tfutil.py in <module>()
162
-
163
- 32
164
-
165
- 33
166
-
167
- ---> 34 def shape_to_list(shape: Iterable[tf.Dimension]) -> List[Union[int, None]]:
168
-
169
- 35 """Convert a Tensorflow shape to a list of ints."""
170
-
171
- 36 return [dim.value for dim in shape]
172
-
173
-
174
-
175
- AttributeError: module 'tensorflow' has no attribute 'Dimension'
176
-
177
-
178
-
179
- ---------------------------------------------------------------------------
180
-
181
-
182
-
183
- また、1.14.0では、以下のようなエラーが出てきます
184
-
185
-
186
-
187
-
188
-
189
- ModuleNotFoundError Traceback (most recent call last)
190
-
191
- <ipython-input-1-ece5f04dab83> in <module>()
192
-
193
- 3 import numpy as np
194
-
195
- 4 import PIL.Image
196
-
197
- ----> 5 import dnnlib
198
-
199
- 6 import dnnlib.tflib as tflib
200
-
201
- 7 import config
202
-
203
229
 
204
230
 
205
231
  ModuleNotFoundError: No module named 'dnnlib'
232
+
233
+ ```