[
  {
    "name": "Convolution",
    "schema": {
      "category": "Layer",
      "inputs": [
        { "name": "input" },
        { "name": "filter" },
        { "name": "bias" }
      ],
      "ouptuts": [
        { "name": "output" }
      ],
      "attributes": [
        { "name": "bias_term", "hidden": true },
        { "name": "weight_filler", "hidden": true },
        { "name": "bias_filler", "hidden": true },
        { "name": "pad", "default": [] },
        { "name": "kernel_size", "default": [] },
        { "name": "stride", "default": [] },
        { "name": "dilation", "default": [] }
      ]
    }
  },
  {
    "name": "Deconvolution",
    "schema": {
      "category": "Layer",
      "inputs": [
        { "name": "input" },
        { "name": "filter" },
        { "name": "bias" }
      ],
      "ouptuts": [
        { "name": "output" }
      ],
      "attributes": [
        { "name": "bias_term", "hidden": true },
        { "name": "weight_filler", "hidden": true },
        { "name": "bias_filler", "hidden": true },
        { "name": "pad", "default": [] },
        { "name": "kernel_size", "default": [] },
        { "name": "stride", "default": [] },
        { "name": "dilation", "default": [] }
      ]
    }
  },
  {
    "name": "InnerProduct",
    "schema": {
      "category": "Layer",
      "inputs": [
        { "name": "input" },
        { "name": "weights" },
        { "name": "bias" }
      ],
      "outputs": [
        { "name": "output" }
      ],
      "attributes": [
        { "name": "bias_term", "hidden": true },
        { "name": "weight_filler", "hidden": true },
        { "name": "bias_filler", "hidden": true }
      ]
    }
  },
  {
    "name": "Scale",
    "schema": {
      "category": "Layer",
      "inputs": [
        { "name": "input" },
        { "name": "scale" },
        { "name": "bias" }
      ],
      "attributes": [
        { "name": "filler", "hidden": false },
        { "name": "bias_term", "hidden": false },
        { "name": "bias_filler", "hidden": false }
      ]
    }
  },
  {
    "name": "Dropout",
    "schema": {
      "category": "Dropout"
    }
  },
  {
    "name": "LRN",
    "schema": {
      "category": "Normalization"
    }
  },
  {
    "name": "BatchNorm",
    "schema": {
      "category": "Normalization",
      "inputs": [
        { "name": "input" },
        { "name": "gamma" },
        { "name": "beta" },
        { "name": "mean" },
        { "name": "variance" }
      ],
      "outputs": [
        { "name": "output" }
      ]
    }
  },
  {
    "name": "Softmax",
    "schema": {
      "category": "Activation"
    }
  },
  {
    "name": "SoftmaxLoss",
    "schema": {
      "category": "Activation",
      "inputs": [
        { "name": "input" },
        { "name": "labels" }
      ]
    }
  },
  {
    "name": "SoftmaxWithLoss",
    "schema": {
      "category": "Activation",
      "inputs": [
        { "name": "input" },
        { "name": "labels" }
      ]
    }
  },
  {
    "name": "ReLU",
    "schema": {
      "category": "Activation"
    }
  },
  {
    "name": "Concat",
    "schema": {
      "category": "Tensor",
      "inputs": [
        { "name": "inputs", "option": "variadic" }
      ]
    }
  },
  {
    "name": "Split",
    "schema": {
      "category": "Tensor",
      "outputs": [
        { "name": "outputs", "option": "variadic" }
      ]  
    }
  },
  {
    "name": "Eltwise",
    "schema": {
      "inputs": [
        { "name": "inputs", "option": "variadic" }
      ]
    }
  },
  {
    "name": "Pooling",
    "schema": {
      "category": "Pool"
    }
  },
  {
    "name": "Crop",
    "schema": {
      "category": "Shape"
    }
  },
  {
    "name": "Data",
    "schema": {
      "category": "Data",
      "outputs": [
        { "name": "outputs", "option": "variadic" }
      ]
    }
  },
  {
    "name": "ImageData",
    "schema": {
      "category": "Data",
      "outputs": [
        { "name": "outputs", "option": "variadic" }
      ]
    }
  },
  {
    "name": "Python",
    "schema": {
      "outputs": [
        { "name": "outputs", "option": "variadic" }
      ]
    }
  }
]