全2件 (2件中 1-2件目)
1
ニューラルネットワークのお話。kerasを使ってニューラルネットワークを行っているが、GPU2枚刺しのマシンにも関わらず、片方しか使っていない模様。ネットを検索すると、multi_gpu_modelを使う方法を知る。だが調べていくうち、multi_gpu_modelは2020年4月以降に廃止とのこと。どおりで、importに失敗したはずだ。結局、以下の方法でimportした。from tensorflow.python.keras.utils.multi_gpu_utils import multi_gpu_modelもう一つ見つけたのが、tensorflow.distribute.MirroredStrategy().scope()を使う方法。例えば、以下は、Deep Learning with Pythonの5-3節をmulti GPUでやろうとしているもの。with tf.distribute.MirroredStrategy().scope(): conv_base = VGG16(weights='imagenet', include_top=False, input_shape=(150, 150, 3)) conv_base.trainable = False model = models.Sequential() model.add(conv_base) model.add(layers.Flatten()) model.add(layers.Dense(256, activation='relu')) model.add(layers.Dense(1, activation='sigmoid'))このように tf.distribute.MirroredStrategy().scope():の下で、モデルを構築する。multi_gpu_modelより、こちらのほうが簡単な気がする。ただし、これだけだとあまり早くならない。重要なのが、fit_generator。history = model.fit_generator( train_generator, steps_per_epoch=20, epochs=30, validation_data=validation_generator, validation_steps=10, workers=4, use_multiprocessing=False)最後の2行が重要。どうもこの計算では、ImageDataGeneratorで時間を食っているらしく、この2行がないと以下のようにあまり早くならない。ちなみにバッチサイズは、100に設定してある。Epoch 1/3020/20 [==============================] - 10s 389ms/step - loss: 0.6642 - acc: 0.5789 - val_loss: 0.5277 - val_acc: 0.7830Epoch 2/3020/20 [==============================] - 7s 372ms/step - loss: 0.5764 - acc: 0.7204 - val_loss: 0.4646 - val_acc: 0.8270Epoch 3/3020/20 [==============================] - 7s 375ms/step - loss: 0.5208 - acc: 0.7720 - val_loss: 0.4229 - val_acc: 0.8400逆に、最後の2行がある場合は、以下の通り。Epoch 1/3020/20 [==============================] - 6s 229ms/step - loss: 0.6493 - acc: 0.6282 - val_loss: 0.5412 - val_acc: 0.7550Epoch 2/3020/20 [==============================] - 3s 152ms/step - loss: 0.5535 - acc: 0.7364 - val_loss: 0.4686 - val_acc: 0.8160Epoch 3/3020/20 [==============================] - 4s 160ms/step - loss: 0.5190 - acc: 0.7587 - val_loss: 0.4252 - val_acc: 0.8380半分くらいの時間になった。最後に、multi GPUにしない場合も示しておく。ここでは、バッチサイズは50に設定したため、steps_per_epochは倍の40になっている。Epoch 1/3040/40 [==============================] - 8s 193ms/step - loss: 0.7314 - acc: 0.5589 - val_loss: 0.5121 - val_acc: 0.7990Epoch 2/3040/40 [==============================] - 8s 190ms/step - loss: 0.5616 - acc: 0.7411 - val_loss: 0.4430 - val_acc: 0.8240Epoch 3/3040/40 [==============================] - 8s 191ms/step - loss: 0.4937 - acc: 0.7813 - val_loss: 0.3819 - val_acc: 0.8650
2021.03.31
楽天モバイルのRakuten UN-LIMITに加入した。1年間無料である。以前、検討したが、1年後どうなるかわからなかったので、やめた。その際、別のところ(ocnモバイル)に加入して、1円でスマホを手に入れた。1円といっても、実際には、様々な手数料に数千円はかかったと思う。今まで使っていたAsus zenfone2 laserのGPSがいまいちで、コロナウィルス関連アプリcocoaを使いづらいと思ったので買い替えたのだが、結局インストールしていない。最近の報道で、cocoaの不具合が発表され、ますますインストールする気になれない。それで、Rakuten UN-LIMITの件であるが、1年後、ひと月の使用量が1GBまでなら無料という驚く発表があったので、加入することにした。どうせ無料なのだからと、使わなくなったAsus zenfone2 laserにsimカードを刺したが、使えない。結局、新しいスマホ(こちらもasus zenfone)に2枚刺しすることになった。楽天モバイルには何も期待していないが、もし使えるなら楽天を残して、OCNを解約しようと思う。OCNが値下げをしないのであれば、いずれにせよ別のところに移るだろう。
2021.03.06
全2件 (2件中 1-2件目)
1