

google colabでKarasを使ったNotebookを実行。

No-GPUだと、エラー表示が無かった。

[code]

    ResourceExhaustedError: OOM when allocating tensor of shape [3,3,256,512] and type float
         [[Node: training_1/SGD/zeros_14 = Const[dtype=DT_FLOAT, value=Tensor<type: float shape: [3,3,256,512] values: [[[0 0 0]]]...>, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
    
    During handling of the above exception, another exception occurred:
    
    ResourceExhaustedError                    Traceback (most recent call last)
    <ipython-input-23-1e944e6043cb> in <module>()
    ----> 1 hist_obj = deconvNet.Train()
    
[/code]

以下、そんな感じのリソース足らないメッセージがてんこ盛り。。

よろしくおねがいします。

ソースコード Notebook

[code]

    !pip install pydot
    !apt-get install -y -qq software-properties-common python-software-properties     module-init-tools
    !add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
    !apt-get update -qq 2>&1 > /dev/null
    !apt-get -y install -qq google-drive-ocamlfuse fuse
    from google.colab import auth
    auth.authenticate_user()
    from oauth2client.client import GoogleCredentials
    creds = GoogleCredentials.get_application_default()
    import getpass
    !google-drive-ocamlfuse -headless -id={creds.client_id} -secret= 
    {creds.client_secret} < /dev/null 2>&1 | grep URL
    vcode = getpass.getpass()
    !echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} - secret={creds.client_secret}
    
[/code]

:  
:

[code]

    import keras
    from keras.layers import Input, Dense, Lambda, Flatten, Reshape, 
    Concatenate,Activation
    from keras.layers import concatenate
    from keras.layers import Conv2D, Conv2DTranspose, ZeroPadding2D,MaxPooling2D, 
    Cropping2D, BatchNormalization
    from keras.models import Model
    from keras import metrics
    from keras import backend as K
    from keras import optimizers
    from keras import losses
    from keras.utils import plot_model
    from keras.callbacks import Callback
    from keras.applications.vgg16 import VGG16
    from keras.applications.vgg16 import preprocess_input
    import tensorflow as tf
    import random
    import time
    import numpy as np
    import skimage.io as io
    import matplotlib
    import matplotlib.pyplot as plt
    %matplotlib inline
    import pydot
    from pyemd import emd, emd_samples
    
[/code]


CC BY-SA 4.0
2018-07-24T05:00:06.873
46893
2018-07-31T14:52:07.283
2018-07-25T03:41:27.493
24018
24018
question
keras gpu google-colaboratory
google colaboratoryでgpu使ったら、ResourceExhaustedErrorと表示


英語版に関連した質問と回答があります。

[Google Colaboratory: misleading information about its GPU (only 5% RAM
available to some users)](https://stackoverflow.com/questions/48750199)

要約すると、GPUのRAMが500MBしかもらえない場合が多いということです。そのため、リソース不足のメッセージが出たものと思われます。

対応としては、GPUのRAMが500MBでも動作するようにブログラムを修正するぐらいしかなさそうです。

英語版の質問にあった次のコードを使って最初にGPUのメモリーを確認しておくと便利だと思います。この回答を書く前に試してみたらGPUのRAM11GBをすべて使える状態でした。

[code]

    # memory footprint support libraries/code
    !ln -sf /opt/bin/nvidia-smi /usr/bin/nvidia-smi
    !pip install gputil
    !pip install psutil
    !pip install humanize
    import psutil
    import humanize
    import os
    import GPUtil as GPU
    GPUs = GPU.getGPUs()
    # XXX: only one GPU on Colab and isn’t guaranteed
    gpu = GPUs[0]
    def printm():
        process = psutil.Process(os.getpid())
        print("Gen RAM Free: " + humanize.naturalsize( psutil.virtual_memory().available ), " | Proc size: " + humanize.naturalsize( process.memory_info().rss))
        print("GPU RAM Free: {0:.0f}MB | Used: {1:.0f}MB | Util {2:3.0f}% | Total {3:.0f}MB".format(gpu.memoryFree, gpu.memoryUsed, gpu.memoryUtil*100, gpu.memoryTotal))
    printm()
    
    Gen RAM Free: 12.6 GB  | Proc size: 140.1 MB
    GPU RAM Free: 11439MB | Used: 0MB | Util   0% | Total 11439MB
    
[/code]


CC BY-SA 4.0
2018-07-31T14:52:07.283
47139
2018-07-31T14:52:07.283
15171
46893
answer