[
  {
    "path": ".gitignore",
    "content": "### https://raw.github.com/github/gitignore/f57304e9762876ae4c9b02867ed0cb887316387e/Python.gitignore\n\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nenv/\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\n*.egg-info/\n.installed.cfg\n*.egg\n\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*,cover\n.hypothesis/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# pyenv\n.python-version\n\n# celery beat schedule file\ncelerybeat-schedule\n\n# SageMath parsed files\n*.sage.py\n\n# dotenv\n.env\n\n# virtualenv\n.venv\nvenv/\nENV/\n\n# Spyder project settings\n.spyderproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n/.idea/\n\n.DS_Store\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2017 Yusuke Uchida\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# Cutout / Random Erasing\nThis is a Cutout [1] / Random Erasing [2] implementation.\nIn particular, it is easily used with ImageDataGenerator in Keras.\nPlease check [random_eraser.py](random_eraser.py) for implementation details.\n\n## About Cutout / Random Erasing\nCutout or Random Erasing is a kind of image augmentation methods\nfor convolutional neural networks (CNN).\nThey are very similar methods and were proposed almost at the same time.\n\nThey try to regularize models using training images\nthat are randomly masked with random values.\n\n<img src=\"example.png\" width=\"480px\">\n\n<img src=\"example2.png\" width=\"480px\">\n\n## Usage\n### With ImageDataGenerator in Keras\nIt is very easy to use if you are using ImageDataGenerator in Keras;\nget `eraser` function by `get_random_eraser()`,\nand then pass it to `ImageDataGenerator` as `preprocessing_function`.\nBy doing so, all images are randomly erased *before* standard augmentation\ndone by ImageDataGenerator.\n\nPlease check [cifar10_resnet.py](cifar10_resnet.py),\nwhich is imported from [official Keras examples](https://github.com/fchollet/keras/tree/master/examples).\n\nWhat I did is adding only two lines:\n\n```python\n...\nfrom random_eraser import get_random_eraser  # added\n...\n\n    datagen = ImageDataGenerator(\n    ...\n        preprocessing_function=get_random_eraser(v_l=0, v_h=1))  # added\n```\n\n### Erase a single image\nOf cause, you can erase a single image using `eraser` function.\nPlease note that `eraser` function works in inplace mode;\nthe input image itself will be modified (therefore, `img = eraser(img)` can be replaced by `eraser(img)` in the following example).\n\n```python\nfrom random_eraser import get_random_eraser\neraser = get_random_eraser()\n\n# load image to img\nimg = eraser(img)\n```\n\nPleae check [example.ipynb](example.ipynb) for complete example.\n\n### Parameters\nParameters are fully configurable as:\n\n```\nget_random_eraser(p=0.5, s_l=0.02, s_h=0.4, r_1=0.3, r_2=1/0.3,\n                  v_l=0, v_h=255, pixel_level=False)\n```\n\n- `p` : the probability that random erasing is performed\n- `s_l`, `s_h` : minimum / maximum proportion of erased area against input image\n- `r_1`, `r_2` : minimum / maximum aspect ratio of erased area\n- `v_l`, `v_h` : minimum / maximum value for erased area\n- `pixel_level` : pixel-level randomization for erased area\n\n\n## Results\nThe original `cifar10_resnet.py` result (w/o cutout / random erasing):\n\n```\nTest loss: 0.539187009859\nTest accuracy: 0.9077\n```\n\nWith cutout / random erasing:\n\n```\nTest loss: 0.445597583055\nTest accuracy: 0.9182\n```\n\nWith cutout / random erasing (pixel-level):\n\n```\nTest loss: 0.446407950497\nTest accuracy: 0.9213\n```\n\n\n## References\n[1] T. DeVries and G. W. Taylor, \"Improved Regularization of Convolutional Neural Networks with Cutout,\" in arXiv:1708.04552, 2017.\n\n[2] Z. Zhong, L. Zheng, G. Kang, S. Li, and Y. Yang, \"Random Erasing Data Augmentation,\" in arXiv:1708.04896, 2017.\n"
  },
  {
    "path": "cifar10_resnet.py",
    "content": "\"\"\"Trains a ResNet on the CIFAR10 dataset.\n\nGreater than 91% test accuracy (0.52 val_loss) after 50 epochs\n48sec per epoch on GTX 1080Ti\n\nDeep Residual Learning for Image Recognition\nhttps://arxiv.org/pdf/1512.03385.pdf\n\"\"\"\n\nfrom __future__ import print_function\nimport keras\nfrom keras.layers import Dense, Conv2D, BatchNormalization, Activation\nfrom keras.layers import MaxPooling2D, AveragePooling2D, Input, Flatten\nfrom keras.optimizers import Adam\nfrom keras.callbacks import ModelCheckpoint, ReduceLROnPlateau\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.regularizers import l2\nfrom keras import backend as K\nfrom keras.models import Model\nfrom keras.datasets import cifar10\nimport numpy as np\nimport os\nfrom random_eraser import get_random_eraser\n\n# Training params.\nbatch_size = 32\nepochs = 100\ndata_augmentation = True\nrandom_erasing = True\npixel_level = False\n\n# Network architecture params.\nnum_classes = 10\nnum_filters = 64\nnum_blocks = 4\nnum_sub_blocks = 2\nuse_max_pool = False\n\n# Load the CIFAR10 data.\n(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n\n# Input image dimensions.\n# We assume data format \"channels_last\".\nimg_rows = x_train.shape[1]\nimg_cols = x_train.shape[2]\nchannels = x_train.shape[3]\n\nif K.image_data_format() == 'channels_first':\n    img_rows = x_train.shape[2]\n    img_cols = x_train.shape[3]\n    channels = x_train.shape[1]\n    x_train = x_train.reshape(x_train.shape[0], channels, img_rows, img_cols)\n    x_test = x_test.reshape(x_test.shape[0], channels, img_rows, img_cols)\n    input_shape = (channels, img_rows, img_cols)\nelse:\n    img_rows = x_train.shape[1]\n    img_cols = x_train.shape[2]\n    channels = x_train.shape[3]\n    x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, channels)\n    x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, channels)\n    input_shape = (img_rows, img_cols, channels)\n\n# Normalize data.\nx_train = x_train.astype('float32') / 255\nx_test = x_test.astype('float32') / 255\nprint('x_train shape:', x_train.shape)\nprint(x_train.shape[0], 'train samples')\nprint(x_test.shape[0], 'test samples')\nprint('y_train shape:', y_train.shape)\n\n# Convert class vectors to binary class matrices.\ny_train = keras.utils.to_categorical(y_train, num_classes)\ny_test = keras.utils.to_categorical(y_test, num_classes)\n\n# Start model definition.\ninputs = Input(shape=input_shape)\nx = Conv2D(num_filters,\n           kernel_size=7,\n           padding='same',\n           strides=2,\n           kernel_initializer='he_normal',\n           kernel_regularizer=l2(1e-4))(inputs)\nx = BatchNormalization()(x)\nx = Activation('relu')(x)\n\n# Orig paper uses max pool after 1st conv.\n# Reaches up 87% acc if use_max_pool = True.\n# Cifar10 images are already too small at 32x32 to be maxpooled. So, we skip.\nif use_max_pool:\n    x = MaxPooling2D(pool_size=3, strides=2, padding='same')(x)\n    num_blocks = 3\n\n# Instantiate convolutional base (stack of blocks).\nfor i in range(num_blocks):\n    for j in range(num_sub_blocks):\n        strides = 1\n        is_first_layer_but_not_first_block = j == 0 and i > 0\n        if is_first_layer_but_not_first_block:\n            strides = 2\n        y = Conv2D(num_filters,\n                   kernel_size=3,\n                   padding='same',\n                   strides=strides,\n                   kernel_initializer='he_normal',\n                   kernel_regularizer=l2(1e-4))(x)\n        y = BatchNormalization()(y)\n        y = Activation('relu')(y)\n        y = Conv2D(num_filters,\n                   kernel_size=3,\n                   padding='same',\n                   kernel_initializer='he_normal',\n                   kernel_regularizer=l2(1e-4))(y)\n        y = BatchNormalization()(y)\n        if is_first_layer_but_not_first_block:\n            x = Conv2D(num_filters,\n                       kernel_size=1,\n                       padding='same',\n                       strides=2,\n                       kernel_initializer='he_normal',\n                       kernel_regularizer=l2(1e-4))(x)\n        x = keras.layers.add([x, y])\n        x = Activation('relu')(x)\n\n    num_filters = 2 * num_filters\n\n# Add classifier on top.\nx = AveragePooling2D()(x)\ny = Flatten()(x)\noutputs = Dense(num_classes,\n                activation='softmax',\n                kernel_initializer='he_normal')(y)\n\n# Instantiate and compile model.\nmodel = Model(inputs=inputs, outputs=outputs)\nmodel.compile(loss='categorical_crossentropy',\n              optimizer=Adam(),\n              metrics=['accuracy'])\nmodel.summary()\n\n# Prepare model model saving directory.\nsave_dir = os.path.join(os.getcwd(), 'saved_models')\nmodel_name = 'cifar10_resnet_model.h5'\nif not os.path.isdir(save_dir):\n    os.makedirs(save_dir)\nfilepath = os.path.join(save_dir, model_name)\n\n# Prepare callbacks for model saving and for learning rate decaying.\ncheckpoint = ModelCheckpoint(filepath=filepath,\n                             verbose=1,\n                             save_best_only=True)\nlr_reducer = ReduceLROnPlateau(factor=np.sqrt(0.1),\n                               cooldown=0,\n                               patience=5,\n                               min_lr=0.5e-6)\ncallbacks = [checkpoint, lr_reducer]\n\n# Run training, with or without data augmentation.\nif not data_augmentation:\n    print('Not using data augmentation.')\n    model.fit(x_train, y_train,\n              batch_size=batch_size,\n              epochs=epochs,\n              validation_data=(x_test, y_test),\n              shuffle=True,\n              callbacks=callbacks)\nelse:\n    print('Using real-time data augmentation.')\n    # This will do preprocessing and realtime data augmentation:\n    datagen = ImageDataGenerator(\n        featurewise_center=False,  # set input mean to 0 over the dataset\n        samplewise_center=False,  # set each sample mean to 0\n        featurewise_std_normalization=False,  # divide inputs by std of the dataset\n        samplewise_std_normalization=False,  # divide each input by its std\n        zca_whitening=False,  # apply ZCA whitening\n        rotation_range=0,  # randomly rotate images in the range (degrees, 0 to 180)\n        width_shift_range=0.1,  # randomly shift images horizontally (fraction of total width)\n        height_shift_range=0.1,  # randomly shift images vertically (fraction of total height)\n        horizontal_flip=True,  # randomly flip images\n        vertical_flip=False,  # randomly flip images\n        preprocessing_function=get_random_eraser(v_l=0, v_h=1, pixel_level=pixel_level))\n\n    # Compute quantities required for featurewise normalization\n    # (std, mean, and principal components if ZCA whitening is applied).\n    datagen.fit(x_train)\n\n    # Fit the model on the batches generated by datagen.flow().\n    model.fit_generator(datagen.flow(x_train, y_train, batch_size=batch_size),\n                        steps_per_epoch=x_train.shape[0] // batch_size,\n                        validation_data=(x_test, y_test),\n                        epochs=epochs, verbose=1, workers=4,\n                        callbacks=callbacks)\n\n# Score trained model.\nscores = model.evaluate(x_test, y_test, verbose=1)\nprint('Test loss:', scores[0])\nprint('Test accuracy:', scores[1])\n"
  },
  {
    "path": "example.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {\n    \"collapsed\": false\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"%matplotlib inline\\n\",\n    \"import matplotlib.pyplot as plt\\n\",\n    \"import numpy as np\\n\",\n    \"from random_eraser import get_random_eraser\\n\",\n    \"\\n\",\n    \"cols, rows = 5, 4\\n\",\n    \"img_num = cols * rows\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAfQAAAFiCAYAAAAA6SrUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\\nAAAPYQAAD2EBqD+naQAABytJREFUeJzt3UFOG0sUQNGuiA3A0KtgMUxYIRMWwyo89BYqoy/x4wzA\\nmC7ncs4wQu7S67SuXkTcY865AQD/tl+rDwAAfJ2gA0CAoANAgKADQICgA0CAoANAgKADQICgA0CA\\noANAgKADQICgA0CAoANAgKADQICgA0DA3eoDbNu2jTG8w/WdOefY83rmf27Pe2D+5zwDa5n/WpfO\\n34YOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgAB\\ngg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGC\\nDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIO\\nAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4A\\nAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAFjzrn6DADAF9nQASBA0AEg\\nQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIOBu9QG2bdvGGN4Q886cc+x5\\nPfM/t+c9MP9znoG1zH+tS+dvQweAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeA\\nAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AA\\nQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABB\\nB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEH\\ngABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeA\\ngDHnXH0GAOCLbOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQ\\ncLf6ANu2bWMMb4h5Z8459rye+Z/b8x6Y/znPwFrmv9al87ehA0DATWzo8BFvb2/f8rmPj4/f8rkA\\ne7KhA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANA\\ngKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAwJhzrj7DNsZYf4gbMucce17P/M/t\\neQ/M/5xnYC3zX+vS+dvQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASDgbvUBAODanp6edr3e6+vr\\nrtf7Gxs6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAT4f+gAcafTafUR2IENHQACBB0AAgQdAAIE\\nHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQd\\nAAIEHQACBB0AAgQdAALGnHP1GbYxxvpD3JA559jzeuZ/bs97YP7nPAPXdTqdPvXz9/f35r/QpX//\\nbegAEGBDv0G2k/Vs6Gt5BtYy/7Vs6ADwg93Ehg4AfI0NHQACBB0AAgQdAAIEHQACBB0AAgQdAAIE\\nHQACBB0AAgQdAAIEHQACBB0AAgQdAALuVh9g27w6709eXbie16eu5RlYy/zX8vpUAPjBBB0AAgQd\\nAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAJu4uUsAPCdXl5eVh/hf56fn6/+\\nmTZ0AAgQdAAIEHQACBB0AAgQdAAI8FvuwIccDoerf+bxeLz6Z8JPZUMHgABBB4AAQQeAAEEHgABB\\nB4AAv+XOpz08PHzo506n0zefBID/2NABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASDAF8vw\\nab4wBuD22NABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNAB\\nIEDQASBA0AEgQNABIEDQASBgzDlXn2EbY6w/xA2Zc449r2f+5/a8B//K/A+Hw9U/83g8/vXPPQNr\\nmf9al87fhg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAG+y/0G+R7l\\n9XyX+1qegbXMfy3f5Q4AP5igA0DATfyTOwDwNTZ0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQ\\ndAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0\\nAAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAj4DfkT7EcwPn54AAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<matplotlib.figure.Figure at 0x11098d278>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"x = np.zeros((img_num, 64, 64, 3), dtype=np.uint8)\\n\",\n    \"\\n\",\n    \"eraser = get_random_eraser()\\n\",\n    \"\\n\",\n    \"for i in range(img_num):\\n\",\n    \"    plt.subplot(rows, cols, i + 1)\\n\",\n    \"    plt.imshow(eraser(x[i]), interpolation=\\\"nearest\\\")\\n\",\n    \"    plt.axis('off')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"image/png\": \"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\\n\",\n      \"text/plain\": [\n       \"<matplotlib.figure.Figure at 0x110f88080>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"x = np.zeros((img_num, 64, 64, 3), dtype=np.uint8)\\n\",\n    \"\\n\",\n    \"eraser = get_random_eraser(pixel_level=True)\\n\",\n    \"\\n\",\n    \"for i in range(img_num):\\n\",\n    \"    plt.subplot(rows, cols, i + 1)\\n\",\n    \"    plt.imshow(eraser(x[i]), interpolation=\\\"nearest\\\")\\n\",\n    \"    plt.axis('off')\\n\",\n    \"    plt.savefig(\\\"example2.png\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 2\",\n   \"language\": \"python\",\n   \"name\": \"python2\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 2.0\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython2\",\n   \"version\": \"2.7.6\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 0\n}"
  },
  {
    "path": "random_eraser.py",
    "content": "import numpy as np\n\n\ndef get_random_eraser(p=0.5, s_l=0.02, s_h=0.4, r_1=0.3, r_2=1/0.3, v_l=0, v_h=255, pixel_level=False):\n    def eraser(input_img):\n        if input_img.ndim == 3:\n            img_h, img_w, img_c = input_img.shape\n        elif input_img.ndim == 2:\n            img_h, img_w = input_img.shape\n\n        p_1 = np.random.rand()\n\n        if p_1 > p:\n            return input_img\n\n        while True:\n            s = np.random.uniform(s_l, s_h) * img_h * img_w\n            r = np.random.uniform(r_1, r_2)\n            w = int(np.sqrt(s / r))\n            h = int(np.sqrt(s * r))\n            left = np.random.randint(0, img_w)\n            top = np.random.randint(0, img_h)\n\n            if left + w <= img_w and top + h <= img_h:\n                break\n\n        if pixel_level:\n            if input_img.ndim == 3:\n                c = np.random.uniform(v_l, v_h, (h, w, img_c))\n            if input_img.ndim == 2:\n                c = np.random.uniform(v_l, v_h, (h, w))\n        else:\n            c = np.random.uniform(v_l, v_h)\n\n        input_img[top:top + h, left:left + w] = c\n\n        return input_img\n\n    return eraser\n"
  }
]