質問編集履歴

2

model実行部分を追加しました

2022/11/29 06:22

投稿

drango
drango

スコア2

test CHANGED
File without changes
test CHANGED
@@ -70,6 +70,47 @@
70
70
  model.compile(optimizer=adam, loss='binary_crossentropy')
71
71
 
72
72
  return model
73
+
74
+ import cv2
75
+ import glob
76
+ import os
77
+
78
+ #from keras.callbacks import TensorBoard
79
+ from tensorflow.python.keras.callbacks import TensorBoard
80
+
81
+ #from models import AutoEncoder
82
+ #from utils import ImageLoader
83
+
84
+
85
+ #DATA_DIR = os.path.join('data')
86
+ #DATA_DIR = os.path.join('screw')
87
+ DATA_DIR = '/content/drive/MyDrive/DeepLearningHandson/chapter4/screw'
88
+ TRAIN_DATA_DIR = os.path.join(DATA_DIR, 'train')
89
+ VALID_DATA_DIR = os.path.join(DATA_DIR, 'valid')
90
+ LOGS_DIR = os.path.join('logs')
91
+ MODEL_FILEPATH = os.path.join('results', 'autoencoder_experiment_01.h5')
92
+
93
+ model = AutoEncoder(gpu_num=8)
94
+ #model = AutoEncoder(gpu_num=8)
95
+ image_size = model.input.shape[1:3]
96
+
97
+ model.summary()
98
+
99
+ train_images = ImageLoader(TRAIN_DATA_DIR, tuple(image_size)).load()
100
+ valid_images = ImageLoader(VALID_DATA_DIR, tuple(image_size)).load()
101
+
102
+ tensorboard_callback = TensorBoard(log_dir=LOGS_DIR)
103
+
104
+ model.fit(
105
+ train_images,
106
+ train_images,
107
+ validation_data=(valid_images, valid_images),
108
+ batch_size=125,
109
+ epochs=100,
110
+ callbacks=[tensorboard_callback]
111
+ )
112
+
113
+ model.save(MODEL_FILEPATH)
73
114
  ```
74
115
  ### 試したこと
75
116
  kerasの前にtensorflowをつけたりpythonをつけたりネット上の文献で見当たるものは試してみましたがうまくいきませんでした。

1

tf.distribute.MirroredStrategyを利用する場合の変更点

2022/11/29 06:17

投稿

drango
drango

スコア2

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,11 @@
1
1
  ### 前提
2
2
  Google Colab上でKerasのmulti_gpu_modelをimportしたいのですがうまくいきません。
3
+ 追記: multi_gpu_modelが既に廃止になっていたため、tf.distribute.MirroredStrategyを利用してコードを書き換えたいです。
3
4
  ### 実現したいこと
4
5
 
5
6
  ここに実現したいことを箇条書きで書いてください。
6
7
  - [ ] multi_gpu_modelをgoogle Colab上でimport可能にする
7
-
8
+ - [ ] multi_gpu_modelからtf.distribute.MirroredStrategyに変更した場合にコードをどのように書き換えるか
8
9
  ### 発生している問題・エラーメッセージ
9
10
 
10
11
  ```
@@ -35,6 +36,41 @@
35
36
  #from tensorflow.python.keras.utils.multi_gpu_utils import multi_gpu_model
36
37
  ```
37
38
 
39
+ ```python
40
+ def AutoEncoder(gpu_num=1):
41
+ input_layer = Input(shape=(128, 128, 3))
42
+
43
+ conv11 = Conv2D(32, (3, 3), activation='relu', padding='same')(input_layer)
44
+ conv12 = Conv2D(32, (3, 3), activation='relu', padding='same')(conv11)
45
+ pool1 = MaxPooling2D()(conv12)
46
+
47
+ conv21 = Conv2D(16, (3, 3), activation='relu', padding='same')(pool1)
48
+ conv22 = Conv2D(16, (3, 3), activation='relu', padding='same')(conv21)
49
+ encoded = MaxPooling2D()(conv22)
50
+
51
+ conv31 = Conv2D(8, (3, 3), activation='relu', padding='same')(encoded)
52
+ conv32 = Conv2D(8, (3, 3), activation='relu', padding='same')(conv31)
53
+
54
+ up1 = UpSampling2D()(conv32)
55
+ conv41 = Conv2D(16, (3, 3), activation='relu', padding='same')(up1)
56
+ conv42 = Conv2D(16, (3, 3), activation='relu', padding='same')(conv41)
57
+
58
+ up2 = UpSampling2D()(conv42)
59
+ conv51 = Conv2D(32, (3, 3), activation='relu', padding='same')(up2)
60
+ conv52 = Conv2D(32, (3, 3), activation='relu', padding='same')(conv51)
61
+
62
+ decoded = Conv2D(3, (1, 1), activation='sigmoid', padding='same')(conv52)
63
+
64
+ model = Model(inputs=input_layer, outputs=decoded)
65
+
66
+ if gpu_num >= 2:
67
+ model = multi_gpu_model(model, gpus=gpu_num)
68
+
69
+ adam = Adam(lr=0.0001)
70
+ model.compile(optimizer=adam, loss='binary_crossentropy')
71
+
72
+ return model
73
+ ```
38
74
  ### 試したこと
39
75
  kerasの前にtensorflowをつけたりpythonをつけたりネット上の文献で見当たるものは試してみましたがうまくいきませんでした。
40
76
  もしかしたら自分が見逃しているパターンもあるかもしれないので解答ほどよろしくお願いします。