node {
  name: "t_box"
  op: "Placeholder"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: -1
        }
      }
    }
  }
}
node {
  name: "t_coord"
  op: "Placeholder"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: -1
        }
      }
    }
  }
}
node {
  name: "t_type"
  op: "Placeholder"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: -1
        }
      }
    }
  }
}
node {
  name: "t_natoms"
  op: "Placeholder"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: 4
        }
      }
    }
  }
}
node {
  name: "t_mesh"
  op: "Placeholder"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: -1
        }
      }
    }
  }
}
node {
  name: "model_attr/tmap"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: "O H"
      }
    }
  }
}
node {
  name: "model_attr/sel_type"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "model_attr/model_type"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: "dipole"
      }
    }
  }
}
node {
  name: "model_attr/model_version"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_STRING
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_STRING
        tensor_shape {
        }
        string_val: "1.1"
      }
    }
  }
}
node {
  name: "model_attr/output_dim"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice/stack"
  input: "strided_slice/stack_1"
  input: "strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "add/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "add"
  op: "AddV2"
  input: "add/x"
  input: "strided_slice"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "descrpt_attr/rcut"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
        }
        double_val: 4.0
      }
    }
  }
}
node {
  name: "descrpt_attr/ntypes"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "descrpt_attr/ndescrpt"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 552
      }
    }
  }
}
node {
  name: "descrpt_attr/sel"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: ".\000\000\000\\\000\000\000"
      }
    }
  }
}
node {
  name: "descrpt_attr/t_avg"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 2
          }
          dim {
            size: 552
          }
        }
        tensor_content: "\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\026h\025\205\216\251?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\253>|h\352\334\247?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "descrpt_attr/t_avg/read"
  op: "Identity"
  input: "descrpt_attr/t_avg"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@descrpt_attr/t_avg"
      }
    }
  }
}
node {
  name: "descrpt_attr/t_std"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 2
          }
          dim {
            size: 552
          }
        }
        tensor_content: "3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?3\201\031\356M\370\303?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\017\200\307\345\2725\270?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?\032?\235\027\352*\302?\312\036n\226{\024\266?\312\036n\226{\024\266?\312\036n\226{\024\266?"
      }
    }
  }
}
node {
  name: "descrpt_attr/t_std/read"
  op: "Identity"
  input: "descrpt_attr/t_std"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@descrpt_attr/t_std"
      }
    }
  }
}
node {
  name: "strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_1"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_1/stack"
  input: "strided_slice_1/stack_1"
  input: "strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "mul"
  op: "Mul"
  input: "strided_slice_1"
  input: "mul/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape/shape"
  op: "Pack"
  input: "Reshape/shape/0"
  input: "mul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape"
  op: "Reshape"
  input: "t_coord"
  input: "Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_1/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\t\000\000\000"
      }
    }
  }
}
node {
  name: "Reshape_1"
  op: "Reshape"
  input: "t_box"
  input: "Reshape_1/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_2/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_2/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_2/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_2"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_2/stack"
  input: "strided_slice_2/stack_1"
  input: "strided_slice_2/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "Reshape_2/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_2/shape"
  op: "Pack"
  input: "Reshape_2/shape/0"
  input: "strided_slice_2"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_2"
  op: "Reshape"
  input: "t_type"
  input: "Reshape_2/shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "ProdEnvMatA"
  op: "ProdEnvMatA"
  input: "Reshape"
  input: "Reshape_2"
  input: "t_natoms"
  input: "Reshape_1"
  input: "t_mesh"
  input: "descrpt_attr/t_avg/read"
  input: "descrpt_attr/t_std/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "rcut_a"
    value {
      f: -1.0
    }
  }
  attr {
    key: "rcut_r"
    value {
      f: 4.0
    }
  }
  attr {
    key: "rcut_r_smth"
    value {
      f: 3.799999952316284
    }
  }
  attr {
    key: "sel_a"
    value {
      list {
        i: 46
        i: 92
      }
    }
  }
  attr {
    key: "sel_r"
    value {
      list {
        i: 0
        i: 0
      }
    }
  }
}
node {
  name: "Reshape_3/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377(\002\000\000"
      }
    }
  }
}
node {
  name: "Reshape_3"
  op: "Reshape"
  input: "ProdEnvMatA"
  input: "Reshape_3/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_rmat"
  op: "Identity"
  input: "Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "o_rmat_deriv"
  op: "Identity"
  input: "ProdEnvMatA:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "o_rij"
  op: "Identity"
  input: "ProdEnvMatA:2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "o_nlist"
  op: "Identity"
  input: "ProdEnvMatA:3"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_3/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_3/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_3/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_3"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_3/stack"
  input: "strided_slice_3/stack_1"
  input: "strided_slice_3/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_1/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 552
      }
    }
  }
}
node {
  name: "mul_1"
  op: "Mul"
  input: "mul_1/x"
  input: "strided_slice_3"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_4/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_4/shape"
  op: "Pack"
  input: "Reshape_4/shape/0"
  input: "mul_1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_4"
  op: "Reshape"
  input: "o_rmat"
  input: "Reshape_4/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_4/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_4/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_4/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_4"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_4/stack"
  input: "strided_slice_4/stack_1"
  input: "strided_slice_4/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_2/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 552
      }
    }
  }
}
node {
  name: "mul_2"
  op: "Mul"
  input: "strided_slice_4"
  input: "mul_2/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "Slice/size/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Slice/size"
  op: "Pack"
  input: "Slice/size/0"
  input: "mul_2"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Slice"
  op: "Slice"
  input: "Reshape_4"
  input: "Slice/begin"
  input: "Slice/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "Reshape_5/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377(\002\000\000"
      }
    }
  }
}
node {
  name: "Reshape_5"
  op: "Reshape"
  input: "Slice"
  input: "Reshape_5/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/Slice/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\270\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice"
  op: "Slice"
  input: "Reshape_5"
  input: "filter_type_0/Slice/begin"
  input: "filter_type_0/Slice/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\004\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice"
  input: "filter_type_0/Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/Slice_1/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_1/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_1"
  op: "Slice"
  input: "filter_type_0/Reshape"
  input: "filter_type_0/Slice_1/begin"
  input: "filter_type_0/Slice_1/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_1/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_1"
  op: "Reshape"
  input: "filter_type_0/Slice_1"
  input: "filter_type_0/Reshape_1/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/matrix_1_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 5
          }
        }
        tensor_content: "$qY6 *\275?\037\217\235=2g\326?9G\337\330\337-\346\277\002`r\027\0335\274?\353\003\350\265C\362\324?"
      }
    }
  }
}
node {
  name: "filter_type_0/matrix_1_0/read"
  op: "Identity"
  input: "filter_type_0/matrix_1_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/matrix_1_0"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_1_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 5
          }
        }
        tensor_content: "\364\302\025\212\347\244\326\277\275\343\353\222\\:\000\300U\263\364W6J\346\277\226\223\242\263\277\212\325\277\347\335}\341\346-\361\277"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_1_0/read"
  op: "Identity"
  input: "filter_type_0/bias_1_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/bias_1_0"
      }
    }
  }
}
node {
  name: "filter_type_0/MatMul"
  op: "MatMul"
  input: "filter_type_0/Reshape_1"
  input: "filter_type_0/matrix_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/add"
  op: "AddV2"
  input: "filter_type_0/MatMul"
  input: "filter_type_0/bias_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Tanh"
  op: "Tanh"
  input: "filter_type_0/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_2/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\005\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_2"
  op: "Reshape"
  input: "filter_type_0/Tanh"
  input: "filter_type_0/Reshape_2/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/matrix_2_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 5
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\276H\236c\n#\263\277\227v\3079\221\316\243\277^\340S\367\354\363\321\277\020IQ\213\370\306\316?\264\220H4c\343~\277\212\034\3156\256\261\340\277{\275\212\200a\020\271?\260\324\036\366\3358\261?\376q\340\356\277%\271?\365\010\224\301\315\263\340?+\037\254\335\216\n\330?\2223LO\354\276\236?\021\201.\263\314.\335?8M\374\\f\006\343?\371\204$\347V\215\315\277L\344(H\306\236\204?0\371Q\270\330s\323\277\301\256\360N\335\277\230\277\274~\357\333D\213\333?\231\243\002\232@\213\325\277\n\250\355Nk\337x\277\256K\275\253&P\312\277i\\\"b\340\274\272\277\261\224,\301\013:\312?\206\203\027\255G8\301?\300\364Jx\245\355\325?8<w\031\006\304\343\277\246\335\256\307\t\005\301?2\243\226;X@\326?\233z\355\321h\253\341?\257\366\320+\255\366\307\277\276\t\337z\220/\323?Zf\346\3651\375\306\277\001h;G\231\253\323\277\271\346\304\265:$\265\277\315a7\0230j\254\277\304E\336\303X\356\315\277\352\343b\241\250\372\332\277;\257\347~\006C\252\277L\230x\003s\376\307\277\275\220\211I\212\241\266\277\365\025q\303|h\326\277c\306z\366<`\220?\270c\013\266Ra\271\277\260C\237\236\267\277\322?\263\252~T\250\260\315\2778\363\316l\354>\324\277N \320.\350h\276\277\270\"\2506d\373\325\277\014\246J\207:\014\304\277"
      }
    }
  }
}
node {
  name: "filter_type_0/matrix_2_0/read"
  op: "Identity"
  input: "filter_type_0/matrix_2_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/matrix_2_0"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_2_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\005N\353\341\346Z\364\277\355\'#\007\333\005\350\277l\205\2232,x\315?vw=\351\325\r\325\277<\2231\367$\020\362\277\020\331\241Y\371\202\333?\227\214\370\324\206a\336?\\Fm\261\355\352\352?\202\354,\217\345`\376?\364\250R\233\302\307\356\277"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_2_0/read"
  op: "Identity"
  input: "filter_type_0/bias_2_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/bias_2_0"
      }
    }
  }
}
node {
  name: "filter_type_0/MatMul_1"
  op: "MatMul"
  input: "filter_type_0/Reshape_2"
  input: "filter_type_0/matrix_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/add_1"
  op: "AddV2"
  input: "filter_type_0/MatMul_1"
  input: "filter_type_0/bias_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Tanh_1"
  op: "Tanh"
  input: "filter_type_0/add_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_3/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_3"
  op: "Reshape"
  input: "filter_type_0/Tanh_1"
  input: "filter_type_0/Reshape_3/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "filter_type_0/concat"
  op: "ConcatV2"
  input: "filter_type_0/Reshape_2"
  input: "filter_type_0/Reshape_2"
  input: "filter_type_0/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/add_2"
  op: "AddV2"
  input: "filter_type_0/concat"
  input: "filter_type_0/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/matrix_3_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\271D\264H\260\207\322?\207\200\374\241KW\301\277\007`\214\330;Q\274?iO\236\026\2712\337?\343\33295\370\337\257?\254\377\343\021\370\024\274?\201\343\330)r\230\324?`@\243X\177\355\260\277\317\306\255\370\332\315\303\277\324\207G\205\307\304\265\277}\231I&\335\010\313?\006\357\373\036tZ\300?\001\247\237\317\252\362\276\277:(\215\336\232\024\334\277\364\317\2773\306\335\313?\305\n=\007\310/\276\277\355\035\257y\215\251\324?\347\261\217\004v\031\251?\022\373/53\346\321?\254\217\321X\003\273\312?\351\"x6=\310\301?\271\273zV\007\235\336?\035\234\376\004\365)\312?\351\0039\325\237\326\324?,\346v2\031\r\304\277\032\017ub+B\247\277\265\211\355h3\325\275?c)o\2136\362\317?\351\325\364-\325\345\301?[\003eW\311$~\277s\251d}w\004\330\2772\016\001\355\315e\315\277(,k}\306\372\306?1v\016\307\224l\320?\324t{\304\311\342\302\277\023\205\031\355\315\273\324\277>\370\327\353\316\022\323\277pV FC\316\263?\307g\210C\261B\265?\264\263\023v2R\317?\363\201U\214\376\360\331\277V\345\323\026\004\302\343\277\000\266\312S^\370\265\277s\346\33337^\266\277\363 ,\332sF\263\277p\214\256\376\211o\303\277S\000J]L\231\232\277\330\214\324gQ\361\327\277\224\236\363~\302K\312?*JD\265\016\253\300\277\340\375\253\030%\036\262?\223\341l\304\3020\266\277\036u/\037\371\277\323?\263BnKf_\271?\327hH\227\303\213\213\277\307+a\322/&\263\277\207P\'!\355\366\270\277\352\317\314\347.0\320?\255N\233#F\177\306\277\013\216gG\250\'\324?\013\357\206\230}\025\273?\306\2214X\227W\246?\252\257\\}\206A\224?\326#\226K,\033\277?F\277\332\034\322d\317\277\0213o\252\352e\275\277\235\250\242\311\003\331\325\2773\272\026\201\357?\322\277\375\204\214\362\326\374\311?\334\212(\r\331\000\301\277?\262\373\342\221\303\303\277}\313\333\375\323\336\235?L4f\233R\266\310\277\032o\325\215}\224\337?\'\271pSr\"\216?\336\032\'3T.\302?\010\277\343S\251\265\322\277\344\264\320\\\3623\333?\213\240t\206X\022\330\277<u\2378\322D\325?\353\323?\354^\300\265?\241\230\373\330\230\364\301?.\213Y\324F\216\262?Y\262$\243\313/\310\277\252\242\303\221\363\251\340?>\032\242\020l\261\327\277\214v\216\356\002\202\276\277\212.\323qA\005\337\277\316\327e\216d\206\334\277W\314\357\353\027\014\305\277\265\014\200:\273\333\321?<\312\3141N\303\237?h\373\263@W\346\241?&\205!\247M\341\341??\305_V\365\033\264?\223\214`\252\203\236\310\277#\277!\353\356\201\341\277\361\361 \272\014\017\311?\021\345\212 \237\276\245?\206C\010\242\036\276\300?"
      }
    }
  }
}
node {
  name: "filter_type_0/matrix_3_0/read"
  op: "Identity"
  input: "filter_type_0/matrix_3_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/matrix_3_0"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_3_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\373aX\335\305%\321?L\001\276T}\202\353?\2102\006\226\037}\367?d\206\030\234F\021\326?\325\263\350\006\362\002\374\277\230E\021iWC\364?k{hT\010\006\373?\213\264\333\340Q\265\346\277\252\'Ye\325\367\324\277\315\274\362\360T\332\333\277"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_3_0/read"
  op: "Identity"
  input: "filter_type_0/bias_3_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/bias_3_0"
      }
    }
  }
}
node {
  name: "filter_type_0/MatMul_2"
  op: "MatMul"
  input: "filter_type_0/add_2"
  input: "filter_type_0/matrix_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/add_3"
  op: "AddV2"
  input: "filter_type_0/MatMul_2"
  input: "filter_type_0/bias_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Tanh_2"
  op: "Tanh"
  input: "filter_type_0/add_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_4/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_4"
  op: "Reshape"
  input: "filter_type_0/Tanh_2"
  input: "filter_type_0/Reshape_4/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/add_4"
  op: "AddV2"
  input: "filter_type_0/add_2"
  input: "filter_type_0/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_5/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377.\000\000\000\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_5"
  op: "Reshape"
  input: "filter_type_0/add_4"
  input: "filter_type_0/Reshape_5/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/Reshape_6/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377.\000\000\000\004\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_6"
  op: "Reshape"
  input: "filter_type_0/Slice"
  input: "filter_type_0/Reshape_6/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/MatMul_3"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_6"
  input: "filter_type_0/Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/Slice_2/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\270\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_2/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377p\001\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_2"
  op: "Slice"
  input: "Reshape_5"
  input: "filter_type_0/Slice_2/begin"
  input: "filter_type_0/Slice_2/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_7/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\004\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_7"
  op: "Reshape"
  input: "filter_type_0/Slice_2"
  input: "filter_type_0/Reshape_7/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/Slice_3/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_3/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_3"
  op: "Slice"
  input: "filter_type_0/Reshape_7"
  input: "filter_type_0/Slice_3/begin"
  input: "filter_type_0/Slice_3/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_8/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_8"
  op: "Reshape"
  input: "filter_type_0/Slice_3"
  input: "filter_type_0/Reshape_8/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/matrix_1_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 5
          }
        }
        tensor_content: "_6\262r\"B\327?{;\320\367\343\032\326\277\334\3771f\310\354\331?\034s\020\346\247\264\342?\237HHDr\035\254\277"
      }
    }
  }
}
node {
  name: "filter_type_0/matrix_1_1/read"
  op: "Identity"
  input: "filter_type_0/matrix_1_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/matrix_1_1"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_1_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 5
          }
        }
        tensor_content: "\316*\037(\014\177\354\277\255\352\257\034\303^\263\277\310\210\002\234\221$\321?\314\014\035U\335\002\000\300Z\277\234\346\371\232|\277"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_1_1/read"
  op: "Identity"
  input: "filter_type_0/bias_1_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/bias_1_1"
      }
    }
  }
}
node {
  name: "filter_type_0/MatMul_4"
  op: "MatMul"
  input: "filter_type_0/Reshape_8"
  input: "filter_type_0/matrix_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/add_5"
  op: "AddV2"
  input: "filter_type_0/MatMul_4"
  input: "filter_type_0/bias_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Tanh_3"
  op: "Tanh"
  input: "filter_type_0/add_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_9/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\005\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_9"
  op: "Reshape"
  input: "filter_type_0/Tanh_3"
  input: "filter_type_0/Reshape_9/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/matrix_2_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 5
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\200\203\231\014\343\"\301?\251\205iS\213$\267?\363ax\353\'X\267\277\306\355l\363;\223\330?Q\337\272\306@\372\255\277i\342\317e\307\177\260?4\217\262\331PW\227\277\265\237\",\361\331\322\277\276l_\n;\013\255?*\020\3726l\177\323?\021e%\034\367,\244\277\0211\233\006l\010\323\277\\\010\221\235\311V\323\277\272\2407\021y\362\307?\254t\003v\025%\320\277\010A\235\306\221\335\306\277\346\311\023M\231r\264\277~\317mr\316\325\275\277\372.+\250\005\223\337?\007\364\320\031D\343\325?K+\032\036v}\304\277o\027\374\223\"T\326?\336Uf\354\351T\312?\330!O\354\253\244\316?\267V;\342X\037\231?\270\230\0312\'@\313\2775g\022\244\372\324\335?\320\343n\211\006\364\341\277\332!\027L\243d\313?\262\177\030\n\245\2659\277J\0051\363\303Y\351\277\337\001\004\310\212<\327\277\006:\005_\341 \324?\225\005\252b\327\300\332\277S\005X\332!\020n?M\n\321X\254\036\267?wC\017\344,\256\322?\317\317\214\330\025p\313\277\270\305;R|\215\341?cv$\357\036o\273?\314\177\305O\003q\323\277\022q\000S\030S\325?\362\'h\341\345\030\256?\367\'\257I\277B\314\277\324\207\302\315\314\224\301?I\016\241\254\271\242\303?i\365\373)\253\"\257\277H\206\230\241$\341\244\277\352\353\316\362\'\346\277\277\303?5\323\254\276\276\277"
      }
    }
  }
}
node {
  name: "filter_type_0/matrix_2_1/read"
  op: "Identity"
  input: "filter_type_0/matrix_2_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/matrix_2_1"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_2_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 10
          }
        }
        tensor_content: "!\276Dx5\030\353\277\200b\t\024\236K\352?/\373\266^\345/\216?r\034V\240>\002\312?z\3038YT\227\360?N\251X0#\307\377\277\246\363\262U\256\001\332\277\177\347\2145$\215\341?\334\013\252.\276\352\341?~\212D\204\301k\320?"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_2_1/read"
  op: "Identity"
  input: "filter_type_0/bias_2_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/bias_2_1"
      }
    }
  }
}
node {
  name: "filter_type_0/MatMul_5"
  op: "MatMul"
  input: "filter_type_0/Reshape_9"
  input: "filter_type_0/matrix_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/add_6"
  op: "AddV2"
  input: "filter_type_0/MatMul_5"
  input: "filter_type_0/bias_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Tanh_4"
  op: "Tanh"
  input: "filter_type_0/add_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_10/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_10"
  op: "Reshape"
  input: "filter_type_0/Tanh_4"
  input: "filter_type_0/Reshape_10/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/concat_1/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "filter_type_0/concat_1"
  op: "ConcatV2"
  input: "filter_type_0/Reshape_9"
  input: "filter_type_0/Reshape_9"
  input: "filter_type_0/concat_1/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/add_7"
  op: "AddV2"
  input: "filter_type_0/concat_1"
  input: "filter_type_0/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/matrix_3_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\367\361\255A\233Z\301\277e\0038\336F\224\321\277\333<_\354e\013\320?O\024\357\241\345\266\300\277\026 i\345\305\243\316\277\003\334\\#S\361\324\277]\354\n\273\373\233\264?\225\253\036\'\202\222\270\277\375c\240\256I\251\263\277\220\274\243r\210\272\321?\244 \266/4\024s?\355\216#U^\325\275\277\346\321\225WC\227\316\2778k\2424\010\277\302??T3u\275D\304?X\371\352\220\240\266\224?\245\340\305f\335\205\302?\212\246\370\300t6\254?\361\254\344\301$l\267\277\255\005#o\002\214\320?\257\344\277\256\177E\262?S\247\254G|\275\211\277\n\3410\335\033\340\251\277\220\377b\355\347\030\264\277JF>\t\023U\246\277\017|\036\207Kz\262?\246`\324b\225\025\325?\370\025\005C\356\010r\277X\361*\247\007\273\301\277\340\341\321\243L\013\241\277\tdcRA<\277?R\315\310YXs\331?\320\336\334\256\262\343\302?\360\r\373\2063\263\263\277\312\205\210\316|\026\332\277=\312\341\254tF\320?\3447\220\317)#\303\277\246|^\023\263t\277?\2134\361\341\211\343\310\277\204.X\233]-\331?f\241\001\331\005\306\324\277g\320^\375\276\221\346?\3362lQB\234\214? \327\367\006\337\377\314\277x\207U\267\037\364\332?\332\004\204\347Aj\313?\034\037\304\364\212\017\324? r\241\205\230G\322?a\224\256yBg\332\277\217\262;\217t1\300?\316\021\020e\271G\261\277\326[E\220d\301\240?$\327\261$o,\320?D\262&R\352\203\252?\376\262\316;UB\300?\342\204\2340\345\002\303?\'\007\256^\266p\306\277\036z\230x@I\227\277\200\255q\333\327\236\225?\214\362?\025\374\326\312?\331\006L]\374\235\310?\244\000\302\007\035x\305\277\003\364\324\244\365k\313\277\366=\275\224\237\360\333\277A\347\233\0166j\310?~t\212\352\004c\323?\364\270rv\316F\320?\017`\266\257\261\350\'\277\275]Z\"R\001\335?\277ts\344\217\354\262\277\014\222\347\300U9\340?\300n\201_>\252\300\277\311\020\017;\337\254\264\277\342?\2012m \330\277g\201>U#\007\273?\'DB\017\017\245\260?\327\035\334g\330\355\311?\230!\001\220\264l\304\277\336/\257\260\3700\320\277\265\306\243c\363?\341\277c\273\006|t\302\260\277\352\310\251\301\350\000\322?\360S\337 \"\277\311?\316>\251\223/W\300\277<(/\260T\340\270\277\'\223\375:\207N\325?\010\014\252\250\224\233\344?\277xQ\324\003\356\267?\005\r\n\323\016\r\325\277\374#\314\2118\271\315?mi\204\360\316|\211\277\256\332e&N\013\327?\010n\343\223\027\007\261?1>\237Z\204\361\277\277@0O\253\303\207\325\277y\354\257\246\227\206\340?\213\255\301\257\3323o?\0013\345\027\036\336\314\277{\032\323\177*(\312\277\267\027\366\375\257\n\310?"
      }
    }
  }
}
node {
  name: "filter_type_0/matrix_3_1/read"
  op: "Identity"
  input: "filter_type_0/matrix_3_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/matrix_3_1"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_3_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\274C\270\004K.\372\277C1r\202\324\314\366\277JS\212\001\211\274\263\277\337\233\323R5I\347\277\032\371\026\261\035\\\332\277\336\337\316\300\225\302\364\277E\266W]?S\345\277\253\270\251\306\247\216\346?7w\231j\225%\341?\2624b\315\316&\320?"
      }
    }
  }
}
node {
  name: "filter_type_0/bias_3_1/read"
  op: "Identity"
  input: "filter_type_0/bias_3_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_0/bias_3_1"
      }
    }
  }
}
node {
  name: "filter_type_0/MatMul_6"
  op: "MatMul"
  input: "filter_type_0/add_7"
  input: "filter_type_0/matrix_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/add_8"
  op: "AddV2"
  input: "filter_type_0/MatMul_6"
  input: "filter_type_0/bias_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Tanh_5"
  op: "Tanh"
  input: "filter_type_0/add_8"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_11/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_11"
  op: "Reshape"
  input: "filter_type_0/Tanh_5"
  input: "filter_type_0/Reshape_11/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/add_9"
  op: "AddV2"
  input: "filter_type_0/add_7"
  input: "filter_type_0/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Reshape_12/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\\\000\000\000\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_12"
  op: "Reshape"
  input: "filter_type_0/add_9"
  input: "filter_type_0/Reshape_12/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/Reshape_13/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\\\000\000\000\004\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_13"
  op: "Reshape"
  input: "filter_type_0/Slice_2"
  input: "filter_type_0/Reshape_13/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/MatMul_7"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_13"
  input: "filter_type_0/Reshape_12"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/add_10"
  op: "AddV2"
  input: "filter_type_0/MatMul_3"
  input: "filter_type_0/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/mul/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
        }
        double_val: 0.007246376811594203
      }
    }
  }
}
node {
  name: "filter_type_0/mul"
  op: "Mul"
  input: "filter_type_0/add_10"
  input: "filter_type_0/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Slice_4/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_4/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\377\377\377\377\006\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_4"
  op: "Slice"
  input: "filter_type_0/mul"
  input: "filter_type_0/Slice_4/begin"
  input: "filter_type_0/Slice_4/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/Slice_5/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\000\000\000\000\001\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_5/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\003\000\000\000\377\377\377\377"
      }
    }
  }
}
node {
  name: "filter_type_0/Slice_5"
  op: "Slice"
  input: "filter_type_0/mul"
  input: "filter_type_0/Slice_5/begin"
  input: "filter_type_0/Slice_5/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_0/transpose/perm"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\000\000\000\000\002\000\000\000\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/transpose"
  op: "Transpose"
  input: "filter_type_0/Slice_5"
  input: "filter_type_0/transpose/perm"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tperm"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/MatMul_8"
  op: "BatchMatMulV2"
  input: "filter_type_0/mul"
  input: "filter_type_0/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_0/Reshape_14/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377<\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/Reshape_14"
  op: "Reshape"
  input: "filter_type_0/MatMul_8"
  input: "filter_type_0/Reshape_14/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Shape_1"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_7/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_7/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_7/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_7"
  op: "StridedSlice"
  input: "Shape_1"
  input: "strided_slice_7/stack"
  input: "strided_slice_7/stack_1"
  input: "strided_slice_7/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "strided_slice_8/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_8/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_8/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_8"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_8/stack"
  input: "strided_slice_8/stack_1"
  input: "strided_slice_8/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_3/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 60
      }
    }
  }
}
node {
  name: "mul_3"
  op: "Mul"
  input: "strided_slice_8"
  input: "mul_3/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_7/shape"
  op: "Pack"
  input: "strided_slice_7"
  input: "mul_3"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_7"
  op: "Reshape"
  input: "filter_type_0/Reshape_14"
  input: "Reshape_7/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Shape_2"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_9/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_9/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_9/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_9"
  op: "StridedSlice"
  input: "Shape_2"
  input: "strided_slice_9/stack"
  input: "strided_slice_9/stack_1"
  input: "strided_slice_9/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "strided_slice_10/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_10/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_10/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_10"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_10/stack"
  input: "strided_slice_10/stack_1"
  input: "strided_slice_10/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_4/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 10
      }
    }
  }
}
node {
  name: "mul_4"
  op: "Mul"
  input: "strided_slice_10"
  input: "mul_4/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "mul_5/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "mul_5"
  op: "Mul"
  input: "mul_4"
  input: "mul_5/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_8/shape"
  op: "Pack"
  input: "strided_slice_9"
  input: "mul_5"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_8"
  op: "Reshape"
  input: "filter_type_0/transpose"
  input: "Reshape_8/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_11/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_11/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_11/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_11"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_11/stack"
  input: "strided_slice_11/stack_1"
  input: "strided_slice_11/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "add_1/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "add_1"
  op: "AddV2"
  input: "add_1/x"
  input: "strided_slice_11"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "mul_6/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 552
      }
    }
  }
}
node {
  name: "mul_6"
  op: "Mul"
  input: "add_1"
  input: "mul_6/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_12/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_12/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 4
      }
    }
  }
}
node {
  name: "strided_slice_12/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_12"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_12/stack"
  input: "strided_slice_12/stack_1"
  input: "strided_slice_12/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_7/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 552
      }
    }
  }
}
node {
  name: "mul_7"
  op: "Mul"
  input: "strided_slice_12"
  input: "mul_7/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice_1/begin/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "Slice_1/begin"
  op: "Pack"
  input: "Slice_1/begin/0"
  input: "mul_6"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Slice_1/size/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Slice_1/size"
  op: "Pack"
  input: "Slice_1/size/0"
  input: "mul_7"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Slice_1"
  op: "Slice"
  input: "Reshape_4"
  input: "Slice_1/begin"
  input: "Slice_1/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "Reshape_9/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377(\002\000\000"
      }
    }
  }
}
node {
  name: "Reshape_9"
  op: "Reshape"
  input: "Slice_1"
  input: "Reshape_9/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/Slice/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\270\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice"
  op: "Slice"
  input: "Reshape_9"
  input: "filter_type_1/Slice/begin"
  input: "filter_type_1/Slice/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\004\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice"
  input: "filter_type_1/Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/Slice_1/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_1/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_1"
  op: "Slice"
  input: "filter_type_1/Reshape"
  input: "filter_type_1/Slice_1/begin"
  input: "filter_type_1/Slice_1/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_1/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_1"
  op: "Reshape"
  input: "filter_type_1/Slice_1"
  input: "filter_type_1/Reshape_1/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/matrix_1_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 5
          }
        }
        tensor_content: "\303\232\"W\250z\307\277\001t\325\320/\211\345?\000M8\315\315\251\272?\204\210\242h\020\017\222\277\224g\266qL\314\335\277"
      }
    }
  }
}
node {
  name: "filter_type_1/matrix_1_0/read"
  op: "Identity"
  input: "filter_type_1/matrix_1_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/matrix_1_0"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_1_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 5
          }
        }
        tensor_content: "\230\325\2407\274\331\330\277\244\326\356\274\247\035\337\277\212v\302\216\311R\353?\303\307\031\024\344\303\271?eD\207\371\257R\326\277"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_1_0/read"
  op: "Identity"
  input: "filter_type_1/bias_1_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/bias_1_0"
      }
    }
  }
}
node {
  name: "filter_type_1/MatMul"
  op: "MatMul"
  input: "filter_type_1/Reshape_1"
  input: "filter_type_1/matrix_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/add"
  op: "AddV2"
  input: "filter_type_1/MatMul"
  input: "filter_type_1/bias_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Tanh"
  op: "Tanh"
  input: "filter_type_1/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_2/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\005\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_2"
  op: "Reshape"
  input: "filter_type_1/Tanh"
  input: "filter_type_1/Reshape_2/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/matrix_2_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 5
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\353\n\021\301\004\'\316?Z\324\200\203\353J\301?\2245\263\027QJ\332?\264C\212\253\272A\326\277\341\0168\341d\207\344?\340\244\n\210n\221\274?\352y\261\320\r\034\314?\302\034\226Y\375z\270\277\3570i\361\3655\340?qc[B\2743\224?\263\306\023\325Q\005\323?\335\230\213\216O\200\274?fb\347e\271O\263\277\360J\034p%\265\262\277\371\245\361\302\267]\330\277\356\231$\306I}\312?\334\354\244\274\321;\310\2774\206|+\027;\326?\232;o\224\306\356\317?\217\nrL\226\363\265\2774\237\221\206\000\364\322?{\335\361\325\302*\272\277y\312\212Q\313\275\337\2779\177`6\007V\300\277=\"J#\366\016\322?\007b\032\2475\177\242\277;v\371\334Us\262\277\n^y\315\354_\304?I\314mEA\343\200?\327\374\347r\271\276\312\277\031\211;\270\241\227\276?\031\034P\372\033\007\315\277v\257\n?\316v\301\277\241\222\261\325:-\303?Ef\"\017\303\024\300?\004\205cu?\345\306\277\330G\027\303\2153\301?\273m\335\013\025X\326\277\263\311_\231\330\344\324\277Q\261\317\333g\226\332\277(\356\334\377\242$\243\277v\235\315\372\336z\301\277\220E \232\035\200\273\277\350Y\315\013!v\276\277\250\332\007\221/B\261\277+\345]Y\274\024S\277V\333@)L~\324\277\233k\250\264%W\323\277P\037\362\021^\016\303\277(\002\r\023\320x\337?"
      }
    }
  }
}
node {
  name: "filter_type_1/matrix_2_0/read"
  op: "Identity"
  input: "filter_type_1/matrix_2_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/matrix_2_0"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_2_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\371\203E\253\275z\345\277\255\327\375\306\231a\320?\n\t\237\336\202t\336\277\233fh\246V:\327\277\213M\250\230\373\340\342?\247\307\177\360\276\033\346\277\265\036g$\222\343\363\277\372\ty\325\265\007\304\277\367J0Is\357\255?\333A\245\274vc\340\277"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_2_0/read"
  op: "Identity"
  input: "filter_type_1/bias_2_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/bias_2_0"
      }
    }
  }
}
node {
  name: "filter_type_1/MatMul_1"
  op: "MatMul"
  input: "filter_type_1/Reshape_2"
  input: "filter_type_1/matrix_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/add_1"
  op: "AddV2"
  input: "filter_type_1/MatMul_1"
  input: "filter_type_1/bias_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Tanh_1"
  op: "Tanh"
  input: "filter_type_1/add_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_3/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_3"
  op: "Reshape"
  input: "filter_type_1/Tanh_1"
  input: "filter_type_1/Reshape_3/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "filter_type_1/concat"
  op: "ConcatV2"
  input: "filter_type_1/Reshape_2"
  input: "filter_type_1/Reshape_2"
  input: "filter_type_1/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/add_2"
  op: "AddV2"
  input: "filter_type_1/concat"
  input: "filter_type_1/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/matrix_3_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\027\321\300z,\n\276?\204\322N\276\321\336\210?\t\031\002\274\006\242\277\277R\323\317\016\323E\301??\336\302k~n\271\277\021\251\227\305\003\222\266\277s\211\205\376\240\260\336?\372h\264\202\'\271\261?xWP\346 \345\304\277\262\005\374a\340\266\311?Rl\250h\222\230\227?\0142\316\274\313\224\254\277\002\372\377\206\265\234\224?W\323\256y\312\032\330\277\025\343\363\255\367J\342?\251\307\321\027\004@\210\277\371\226s\210\201\257\313\277\227\277\251\274Fy\326?7\301\340e\002\261\323\277LfE\266\225\320\254?\230\204\235\355Pe\313?r\373\263\265Bj\320\277\332\010\265\226B\017\267?\352\226\200\241b\327\256?0\010\240H\322\257\240?a\274\013!)\322\301\277\206\302\323\334\212F\342?\311\027:\367\321\034\330?\375\261}CS\322\254?_\356uA\224\021\301\277\333H\347Sw\304\320\277\026\000\245\334\266\366\333?\002\375\237|\330^\250?\202\333\246N\030LU\277f\340[\033\030=\275?\013\005\355\355\265h\340\277\200;\241\206\332\371\277?}\300s.\325\274\267\277\254}R\376\257\372\305?\202\355\215\220B}\321\277%A\333l\003\265\231?Z\315\227\353\353I\337?\343\266\235w\203\246\320\277\346D\200\236\212\306\325?Yf\205\007\276\370\267?\272YM\034h4\330?!\351\273\216\220\314\331\2773\220\230$*\212\305?^\314\243l\277\244\307\277\351\344\361[V\242\337?\241\3541\245l\363\256\277\016\014\265\357%\317\265?\017$\357\030\252\215\177?\245\r \000\364\250\264\277\347\330\213\246\207\373\326\277\276\320\322\256\365\037\313?\274\021[\205\305\227\276\277\232\207q\275\321\230\267\277\333\264\037-\315\374\326?\030\3771f\3354\300?\3418\026\231\262&\205?\225\221p\372\244\212\301?\271\252Se\210\205\320?\354XB\261e\250\321\277\241\220\210\346\325I\304\277\307\375\235p\300\016\275?e\032\026%\234\034\337\277\201\215\365\330\315\"\300?nr\0109\265\270\237\277\240r%*\313\237\327\277F\013p\371\206\266\332\277k\375\364j\257T\200?\305d\3741t\372\325\277\210)\002\n\340\343p?\204\030\336\nB\235\305\277\033u:\000~\n\321\277\222\217B\212\361\311\334\277~7&\037.Z\315?\010\214Xl\027#\277\277\276&\335\235\037\223\260\277\267\300\030\270\240Z\274\277\373\201*\313qV\316\277\337=w\256\030\337\311\277\211\032\3632\223\032\313\277\375\304\335G\324Y\307\277\025\360A\206\364e\303\277\006\374\007+\323\'\201\277\203\351\255\333\200\333\264\277\253[\353\273\321\325\330\277\230\243W\033\355\235\262?r\031bp\200\313\252?\332\212z\226\226\223\316\277:\257\374\003\n~\305\277{\376\256}(\262\264?W\207j\017g,\307?\226\302GF\265o\302\277\347\332l\330<n\251?c\301\200q\307W\277?%\361y\373\225 \322\277\014\3371\355\016\232\246\277"
      }
    }
  }
}
node {
  name: "filter_type_1/matrix_3_0/read"
  op: "Identity"
  input: "filter_type_1/matrix_3_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/matrix_3_0"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_3_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\276\231j\177\302\201\331\277Hu\234\301\211\010\357?\204\303\"\235Rc\300\277T\262H\242b\241\346\277\215\221\334k\023\253\325\277\230a\323\007\264|\301\277\202q\340\333\306\205\244?\014h\033R\373\016\244\277*?\337=\311\251\260\277^\240\302Po\334\001@"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_3_0/read"
  op: "Identity"
  input: "filter_type_1/bias_3_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/bias_3_0"
      }
    }
  }
}
node {
  name: "filter_type_1/MatMul_2"
  op: "MatMul"
  input: "filter_type_1/add_2"
  input: "filter_type_1/matrix_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/add_3"
  op: "AddV2"
  input: "filter_type_1/MatMul_2"
  input: "filter_type_1/bias_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Tanh_2"
  op: "Tanh"
  input: "filter_type_1/add_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_4/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_4"
  op: "Reshape"
  input: "filter_type_1/Tanh_2"
  input: "filter_type_1/Reshape_4/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/add_4"
  op: "AddV2"
  input: "filter_type_1/add_2"
  input: "filter_type_1/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_5/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377.\000\000\000\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_5"
  op: "Reshape"
  input: "filter_type_1/add_4"
  input: "filter_type_1/Reshape_5/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/Reshape_6/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377.\000\000\000\004\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_6"
  op: "Reshape"
  input: "filter_type_1/Slice"
  input: "filter_type_1/Reshape_6/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/MatMul_3"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_6"
  input: "filter_type_1/Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/Slice_2/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\270\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_2/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377p\001\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_2"
  op: "Slice"
  input: "Reshape_9"
  input: "filter_type_1/Slice_2/begin"
  input: "filter_type_1/Slice_2/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_7/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\004\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_7"
  op: "Reshape"
  input: "filter_type_1/Slice_2"
  input: "filter_type_1/Reshape_7/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/Slice_3/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_3/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_3"
  op: "Slice"
  input: "filter_type_1/Reshape_7"
  input: "filter_type_1/Slice_3/begin"
  input: "filter_type_1/Slice_3/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_8/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_8"
  op: "Reshape"
  input: "filter_type_1/Slice_3"
  input: "filter_type_1/Reshape_8/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/matrix_1_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 5
          }
        }
        tensor_content: "\013\214\342\027\375w\337\277\325\336{zS\333\312\277\264V\013`\253\276\342\277\247\004(\257\366\371\326\277j\216\360\277:n\350\277"
      }
    }
  }
}
node {
  name: "filter_type_1/matrix_1_1/read"
  op: "Identity"
  input: "filter_type_1/matrix_1_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/matrix_1_1"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_1_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 5
          }
        }
        tensor_content: "\303\026\245\237k\277\375?;\314WQ\007\\\361?\213\000v:A\327\347?6\t8{\267\245\371\2779y\274:+X\365\277"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_1_1/read"
  op: "Identity"
  input: "filter_type_1/bias_1_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/bias_1_1"
      }
    }
  }
}
node {
  name: "filter_type_1/MatMul_4"
  op: "MatMul"
  input: "filter_type_1/Reshape_8"
  input: "filter_type_1/matrix_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/add_5"
  op: "AddV2"
  input: "filter_type_1/MatMul_4"
  input: "filter_type_1/bias_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Tanh_3"
  op: "Tanh"
  input: "filter_type_1/add_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_9/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\005\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_9"
  op: "Reshape"
  input: "filter_type_1/Tanh_3"
  input: "filter_type_1/Reshape_9/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/matrix_2_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 5
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\2405,r\201\360\311\277\320\216|u\277\242\341\277\264W\217\337\273\252\271\277\244\021\353\360\376kM\277\r!`8p-\326\277\224T\021\357\247\036\265?B2\363}x\246\307\277\024N\022y7\250\322?\017AT\330\276-\277?\330G\\\330F\t\237?\0168f\320G=\273\277\337e\222d\276Q\333\277%>\364\253\316\276\325?t\311\\\323A\0136\277\003\030\234\331\301\265\303?\351\004\221Xf\251\334\277jO\244\0033f\271?\211\010\312\010\255E\342\277\261\227\277\347\216\327\267?\324\315\3204\364\017\305\277\3532L\007\266\355\266?\3007\237\300\020H\337?\017mGL\352\344\324\277\222\362\030y\302E\314\277\210\315\036\223\363Q\240\277\313\201\023)nE\313?\3121\243\007mV\336\277+\336\211\036\226\323\261?\324#\032&\355\345\305\277\341\245\347\002\363\217\312?v\317\207\024W<\306\277\362Y\276\311\372+\257?\257\205\252\252\221\345\247\277\026\201=\220\341\327\301\277\235\345+\242w\331\313\277N\274Q\220,g\307?\326\323\335\265\263-\262\277\310P\376~Xe\257\277\324[_\356\017\026\337?/\334oG\017j\302?k\032\006\3707Z\300?7\264\024\317\346\203\322?\233\204\201\320\004=\277\2772/%\213H\354\316?\250>\363\342\017\304\274?t\364\231\023c\177\257?\212_^2\346\204\277?\tR5{\364\370\263\277Rr\206=:\252\251?&\332\221\332Tw\323\277"
      }
    }
  }
}
node {
  name: "filter_type_1/matrix_2_1/read"
  op: "Identity"
  input: "filter_type_1/matrix_2_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/matrix_2_1"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_2_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\274D\221<5\027\325?\365\340\322\001Wq\352?\227\000.\002\254\256\200\277C-0\305\037\214\225?\250\204\355\t\220\030\363?\373\324h\010\335\032\262\277\263s\300\236\312\036\311\277\342\221\220\353k\316\352?=\372-\033\3244\363\277\010\245\276\370|\235\357\277"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_2_1/read"
  op: "Identity"
  input: "filter_type_1/bias_2_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/bias_2_1"
      }
    }
  }
}
node {
  name: "filter_type_1/MatMul_5"
  op: "MatMul"
  input: "filter_type_1/Reshape_9"
  input: "filter_type_1/matrix_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/add_6"
  op: "AddV2"
  input: "filter_type_1/MatMul_5"
  input: "filter_type_1/bias_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Tanh_4"
  op: "Tanh"
  input: "filter_type_1/add_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_10/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_10"
  op: "Reshape"
  input: "filter_type_1/Tanh_4"
  input: "filter_type_1/Reshape_10/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/concat_1/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "filter_type_1/concat_1"
  op: "ConcatV2"
  input: "filter_type_1/Reshape_9"
  input: "filter_type_1/Reshape_9"
  input: "filter_type_1/concat_1/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/add_7"
  op: "AddV2"
  input: "filter_type_1/concat_1"
  input: "filter_type_1/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/matrix_3_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\232\3337\000\216\336\271\277\022$\013%Gf\322?\\Gd\017\211P\301\277J\227\341h\317R\252?e\244\376^,V\244?\311\202N(\032\001\277\277:\365z\321n\002\333\277>0\345ge)\311\277\231-akv|\313\277\r\302\240\265O\306\311?\312\261H\006\270t\270\277\203\355?D\256/\313\2774\022\002PB+\300\277\361\227\032\307\306\360\227?\363y\305\373;j\200\277w\332\356\2750\\\302\277y0\212?O\322\260?\232{+\030\326\306\320?\311\331\221\262\t2\327\277\010\240\224GH*\334?\007\345\032\005\034\273\260?]W8}\341\364\257\277\374\351\354\377\271\032\274\277m\027\257n\0012\323\277+\217\365D\320$\312\277\301\252\265\302\343x\316\277\201B\357\215\333\245\231\277\000\227h\275\033`\320\277\324w\353\2423\027\313?\035\221w\242\003$\322\277\202\226\353d\265\300\273\277uk[\022Ny\331\277\314\275 \363\243\307\301?6P\372\314\263\002\300?\347\353\211\230\260t\242?\327\312\204\031\212\231\311\277-\310\023\220\023\307\301?\345\255\326\330\002\211\252?\200\205\002\373\302\222\304\277z\263\245\007=\234~?\tM\321\202l\374\272\277\r\330\200g\200\265\313?\212\032h\262B\266\302?)\207ivC\'\305\2775\0277\033I\273\320??N\367\341:\261\211\277\007\261\334\220\034h\315\277\006\240\336\214x\325\264?Se\274{f\205\324?Z\353\370o\001\313\265\2777^\211\366\215\010\270\277\224#<\366\374\322\267?;x\371\201\005X\262\277\374\\\201Y\222\307\276?t\245\335t\273M\265?\343&\3034E5\325?\317Z\336(\323\013\301\277SJ6\t\013c\273?\020<\376n;[\307?\205\000\323\264\301\\\267?:\300\244\374S\343\300?i?D\305\375~\340\277K\233\315`\014\242\300?.,\002\347([J?\2612\363O\320\242\334\277rt\304\013e\363\320\2773\340\241\277\252\212\332?\333\026\025z\352\251\327?NW\272\344.R\317\277\316qau\0066\340?l$\266c\351\233\265\277u\363j\227\243-\272?\005\323h\362FM\226\277\202Z\355a\006\250\273\277\270\302\326*\341\321\262?\355\345SVh\024\260\277\274\217\223`\343\270\317?\255\t\251\033C\"\335\277\026R\244~\364\272\303?\372\355\265\233\302\305\342?YQ\316[\306\302\332\277\226o\310\311iH\316\277q\277\316\303u\240\311\277\357W}?\375 \311\277\344\002\020\251\2039\315?j\261:\225\3318\266\277B\351\3533F$\263\277e=\327K\017+\237\277\310\242\334\\bd\335?\345\220\233\005\357\227\274?\3050\002\223\335r\262?\204\217\270\204\210\231\322?\242K\263\007s/\322?\206#x\324\027\303\321\277\022<$\325f\317\316?zsS\312\266U\333\277\2647\0131\nd\267\277\027\342\324\300kJ\301\277\244\025\n\263q\001\275\277\274\211\323\365\330\247\311\277"
      }
    }
  }
}
node {
  name: "filter_type_1/matrix_3_1/read"
  op: "Identity"
  input: "filter_type_1/matrix_3_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/matrix_3_1"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_3_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
          dim {
            size: 10
          }
        }
        tensor_content: "j\t\326\260\252\034\353\277\203WH\271\262\341\320?8\322\330i\317S\352\277\013\355\317\261g\236\345?\030\205\221\251E{\350\277L\031\213]\014Os\277z\226\224\226\320\272\323?\210\244\214\302o\223\356?\031\037\302\303\001k\340?\350C\026\022T\034\327?"
      }
    }
  }
}
node {
  name: "filter_type_1/bias_3_1/read"
  op: "Identity"
  input: "filter_type_1/bias_3_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@filter_type_1/bias_3_1"
      }
    }
  }
}
node {
  name: "filter_type_1/MatMul_6"
  op: "MatMul"
  input: "filter_type_1/add_7"
  input: "filter_type_1/matrix_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/add_8"
  op: "AddV2"
  input: "filter_type_1/MatMul_6"
  input: "filter_type_1/bias_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Tanh_5"
  op: "Tanh"
  input: "filter_type_1/add_8"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_11/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_11"
  op: "Reshape"
  input: "filter_type_1/Tanh_5"
  input: "filter_type_1/Reshape_11/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/add_9"
  op: "AddV2"
  input: "filter_type_1/add_7"
  input: "filter_type_1/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Reshape_12/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\\\000\000\000\n\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_12"
  op: "Reshape"
  input: "filter_type_1/add_9"
  input: "filter_type_1/Reshape_12/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/Reshape_13/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\\\000\000\000\004\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_13"
  op: "Reshape"
  input: "filter_type_1/Slice_2"
  input: "filter_type_1/Reshape_13/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/MatMul_7"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_13"
  input: "filter_type_1/Reshape_12"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/add_10"
  op: "AddV2"
  input: "filter_type_1/MatMul_3"
  input: "filter_type_1/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/mul/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
        }
        double_val: 0.007246376811594203
      }
    }
  }
}
node {
  name: "filter_type_1/mul"
  op: "Mul"
  input: "filter_type_1/add_10"
  input: "filter_type_1/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Slice_4/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_4/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\377\377\377\377\006\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_4"
  op: "Slice"
  input: "filter_type_1/mul"
  input: "filter_type_1/Slice_4/begin"
  input: "filter_type_1/Slice_4/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/Slice_5/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\000\000\000\000\001\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_5/size"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\003\000\000\000\377\377\377\377"
      }
    }
  }
}
node {
  name: "filter_type_1/Slice_5"
  op: "Slice"
  input: "filter_type_1/mul"
  input: "filter_type_1/Slice_5/begin"
  input: "filter_type_1/Slice_5/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "filter_type_1/transpose/perm"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\000\000\000\000\002\000\000\000\001\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/transpose"
  op: "Transpose"
  input: "filter_type_1/Slice_5"
  input: "filter_type_1/transpose/perm"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tperm"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/MatMul_8"
  op: "BatchMatMulV2"
  input: "filter_type_1/mul"
  input: "filter_type_1/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "filter_type_1/Reshape_14/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377<\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/Reshape_14"
  op: "Reshape"
  input: "filter_type_1/MatMul_8"
  input: "filter_type_1/Reshape_14/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Shape_4"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_15/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_15/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_15/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_15"
  op: "StridedSlice"
  input: "Shape_4"
  input: "strided_slice_15/stack"
  input: "strided_slice_15/stack_1"
  input: "strided_slice_15/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "strided_slice_16/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_16/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 4
      }
    }
  }
}
node {
  name: "strided_slice_16/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_16"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_16/stack"
  input: "strided_slice_16/stack_1"
  input: "strided_slice_16/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_8/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 60
      }
    }
  }
}
node {
  name: "mul_8"
  op: "Mul"
  input: "strided_slice_16"
  input: "mul_8/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_11/shape"
  op: "Pack"
  input: "strided_slice_15"
  input: "mul_8"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_11"
  op: "Reshape"
  input: "filter_type_1/Reshape_14"
  input: "Reshape_11/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Shape_5"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_17/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_17/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_17/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_17"
  op: "StridedSlice"
  input: "Shape_5"
  input: "strided_slice_17/stack"
  input: "strided_slice_17/stack_1"
  input: "strided_slice_17/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "strided_slice_18/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_18/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 4
      }
    }
  }
}
node {
  name: "strided_slice_18/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_18"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_18/stack"
  input: "strided_slice_18/stack_1"
  input: "strided_slice_18/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_9/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 10
      }
    }
  }
}
node {
  name: "mul_9"
  op: "Mul"
  input: "strided_slice_18"
  input: "mul_9/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "mul_10/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "mul_10"
  op: "Mul"
  input: "mul_9"
  input: "mul_10/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_12/shape"
  op: "Pack"
  input: "strided_slice_17"
  input: "mul_10"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_12"
  op: "Reshape"
  input: "filter_type_1/transpose"
  input: "Reshape_12/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "concat"
  op: "ConcatV2"
  input: "Reshape_7"
  input: "Reshape_11"
  input: "concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "concat_1/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "concat_1"
  op: "ConcatV2"
  input: "Reshape_8"
  input: "Reshape_12"
  input: "concat_1/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_descriptor"
  op: "Identity"
  input: "concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "o_rot_mat"
  op: "Identity"
  input: "concat_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "strided_slice_20/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_20/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_20/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_20"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_20/stack"
  input: "strided_slice_20/stack_1"
  input: "strided_slice_20/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_11/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 60
      }
    }
  }
}
node {
  name: "mul_11"
  op: "Mul"
  input: "mul_11/x"
  input: "strided_slice_20"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_13/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_13/shape"
  op: "Pack"
  input: "Reshape_13/shape/0"
  input: "mul_11"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_13"
  op: "Reshape"
  input: "o_descriptor"
  input: "Reshape_13/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_21/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_21/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_21/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_21"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_21/stack"
  input: "strided_slice_21/stack_1"
  input: "strided_slice_21/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_12/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 30
      }
    }
  }
}
node {
  name: "mul_12"
  op: "Mul"
  input: "mul_12/x"
  input: "strided_slice_21"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_14/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_14/shape"
  op: "Pack"
  input: "Reshape_14/shape/0"
  input: "mul_12"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_14"
  op: "Reshape"
  input: "o_rot_mat"
  input: "Reshape_14/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_22/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_22/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_22/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_22"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_22/stack"
  input: "strided_slice_22/stack_1"
  input: "strided_slice_22/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_13/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 60
      }
    }
  }
}
node {
  name: "mul_13"
  op: "Mul"
  input: "strided_slice_22"
  input: "mul_13/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice_2/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "Slice_2/size/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Slice_2/size"
  op: "Pack"
  input: "Slice_2/size/0"
  input: "mul_13"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Slice_2"
  op: "Slice"
  input: "Reshape_13"
  input: "Slice_2/begin"
  input: "Slice_2/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "Reshape_15/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377<\000\000\000"
      }
    }
  }
}
node {
  name: "Reshape_15"
  op: "Reshape"
  input: "Slice_2"
  input: "Reshape_15/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_23/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_23/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_23/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_23"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_23/stack"
  input: "strided_slice_23/stack_1"
  input: "strided_slice_23/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_14/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 30
      }
    }
  }
}
node {
  name: "mul_14"
  op: "Mul"
  input: "strided_slice_23"
  input: "mul_14/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice_3/begin"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\000\000\000\000\000\000\000\000"
      }
    }
  }
}
node {
  name: "Slice_3/size/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Slice_3/size"
  op: "Pack"
  input: "Slice_3/size/0"
  input: "mul_14"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Slice_3"
  op: "Slice"
  input: "Reshape_14"
  input: "Slice_3/begin"
  input: "Slice_3/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "Reshape_16/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 3
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000\003\000\000\000"
      }
    }
  }
}
node {
  name: "Reshape_16"
  op: "Reshape"
  input: "Slice_3"
  input: "Reshape_16/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_0_type_0/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 60
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\027\025\256\217q\261\247\277\265B\250\206,k\261\277\003\364\341\252\224]\306\277A\024\251\331\030g\205?\2370U\0004\354\265?\336\177Sb\010\334\225?\310\215+\027\312\354\225\277sVS\032Q\316\306\277O\375\250f\'Q\305?[\367Cj[\314\243\277\274\306\004\010hA\226?\316\273\000\275\362b\255\277*\007?\325\355g\220?\002\253\001\034]#\277?\265\034m\221\327H\310?)\354\014\035\2021\310\277\251\317\300\272[$\270\277e]\326qB9\317?\227\036at%\277\227\277}\010r\032\342\237\270\277zh\262\024D1\217?\363\247M\312}\311\245?\244b\364\034.7\251\277\246\270@\262Z\305\207\277\037\024\277\316\004\031\315\277\240Y\310\320\217i\274?\'\246e\254V\026\254\277\264\262>\225I]\312\277\307\377\362\254!\243\224\277\270\224\t\370,\022\224?\335\376\254rp\357\304\277\243a\352\n\365\227\262\277\227\374%*\\p\266\277\235\321#\263\312\316\272\277\262V\260F\275\"\317\277\325\233\001\004D\206\215?J\003\033-T\215\262?:\001+\021\'\257\247?\310\317\236K\365n\265?\271K\336HY\344\253\277Y\205\177l\333k\304\277Ne\027\375\250;\306?\001\253G\374\3202\315\277(\035\030\320\020\230\230?~\325}oIe\254\277l~\351\032~\356\227?\014\200\3726}\312\316\277\016\330\213<e,\246?\252\335\352\271\325l\274?\022z\305\020\272\254\314?\217\275x\304\227*\276\277\363\236\302#\273\205\261\277\301\334\330\221oD\301?G\222W\201\350s\211?\315y\257\341P\027\333\2779\323\245\204\207\253\276?\371\274\013|#\216\250\277 \037M\330u\024\223\277x\254\333\336\373\030\271?u%\006t\2252\250?\260(\372\351\231\270\300?\205\216\333\326\340\274\262?.\264L\342C%\303\277)\231\363\254E?\233\277Rg\"x\235\003\234?\367\331>\250\301\334\300\277\374=<b2\257\241\277\016\374\201\245\020\017\300?\237igW\311\227\245?\343\'\377\367\230\\\266?Gy\202\202\212Q\274\277>K\227^\375\313\246\277\021\361s\261t\260\301\277V\263%i\240\000\207?\005d\033\027?\370\177?\276\346{\206\223\037\273?\306\265\372\252\014~\321\277Zk\225\260\225\333\272\277\366/u\231\326d\317?\205\020\203\366\263\356\307?;hp\263\037$\311?\330\342\233\204t\354\244?\221\252\036y\245bw?\3305_\000\201v\303\277a\350K\230\302\222~\277u&\253\030\352\340\312?\210\302\017=\235\013\303?\333?\274\017\245q[?\360\020\351\261\234)\306?I\246\025\335]*\276?S\337\323\263-\322\266\2774*\251\'m\224\276\277\354v\"\234\007\345\245\277\311h\312\210\t\253q?\2723\371\334\236\320\276?G\352\364;)\365\305\277U\267c;\313\244e?Q\016\344F\320n\302?\241\376\025\005\307)\305?\245l\315\341\300H\307\277~\336\322\353\265\303\251?\376\237A\222(\262\177\277\364\232\177\230\026\313\307?Wf\370\261\235\250\267\277wy+\222X\200\300?\205\346S\272\364\235\313\277Y\026m\223p\333\314?\350W\210w\365\355\322\277\2421\311\253ug\310\277&B\020;|\235\261?V\215H\ng\004u\277.\372\240\201\332\032\272\277\371+\021\237\342\322\265\277I\207\023M\362\220\311?zfo\370\t\275\217?R\270u\360\350\022\323\277T.!K\236\205\306\277\240\352\310\241[p\266?*1\375\367\rp\266?\367=\233*\211z\312\277\0136gw\211\320\177?`2\201\203\303\263\266\277\260\215\366\026\323\033x?\020/\211\347R\301{?X\n\023,s(\245\277\204\352X\344\t\024\303?c\304\257f=\026\266\277\204\024\361Q<\303\301?\255\307\002G\376\374\262?\241_\264\314\212c\245?Q+\251\333:\365\251?\220\200\351\324\326\277\177\277\213\2549\336\223\311\300?h|\277\226\252_\272\277\201\025\0376\226\332\241?\266\374\252\t\363\352\237\277\004\031N\331\354P\302\277\364\001\275*^!\267\277Kv\201\331/\310\315\277\235U\337\003\266\305\266\277\003/\342\307\004C\257?L\261H\275\211\304\302?\334\025\tt\353.\315\277~\354b\377Z\254\307?,\377\312\n+\t\301\277 \245\177ie\210\211?\271o1-(\255\250?\303\377D\347sd\241\277l\357<b/\312\256?\004r\362\214F\336\242\277\227\215\3203\302\333r\277!\351\035\354\376\261`\277!\271\276\212-,\302?UZ}\200\036[\266?V\235\216\267GC\326\277p\324\211f\235\232\225?\233\274\272>\331J\227\277\270\027\246\333^H\232\277\006,Z\217\325\240\320? h]\024[\332\243?~\354r\270\311\027\264?\2521\366}J\321\203\277\342\352;O2\254\261\277\321\240R\267\277\217\244\277}\013\030\"\2256\235?k\244\000\366\343\306\303?pf\261uOa\324\277\266yh.\007\315\246?u\237U\237hY\312?s\245s\"\376\254\326?x\260C|,\\h?\340\214J\204\023\351\256?\344\203\242~\271\323\305?_=\021P\355\003\244?\340>m\324,?\303\277\335\374\365\305\242z\306\277+\315\005\214 rT\277\033i5\270\344\230\244?\234\225\332UHP\262??\352\020\230w\372\255\277%\ro\214:)\304\277\223\326^\367F)\271?\021^\037q\356c\272?\033F\356\353\270\034\261?\234X\344\2219\325\302\277\226\265\302\267%\\\253?\376\206\347\226\320\036\317\277\232\375\177Y\224\034\304?O[\310a\331\270\256\277\270T5\236\275Z\306?\335\3541\331P\203\252\277\241\217\325\372\237\220\267\277m6\374\312\266\022\304??\307e\313d\207\246\277\022\216\226\230\026)\261\277\3543\314M\'\020\257\277e@\213\371qS\222\277\254\2412\324\323e\275\277\2409\314r\037\234\223\277\257\213\236\311G\226\267?wT\t\264\353,\252\277\260\020\027e4\254\260?K$L$\357\276\304\277\257\016\r\227\373\002\246?4\222v\244\300\270\324\277\326\007\370:\306d\263\277\360\023\032\363z\217\216?\"\307\333\362|\275\247\277\235\027\225T!/\312?6\317\350m?c\276\277\t\231\\d\320\362\302\277\245L{2\250E\250\277\351~\215\232\t-\306\277\233\375\204\365\231\327\251?O\\WCA4\304\277\253W\236\374\214w\252\277W\320\365\'\351\254\261?u\016\264\224\023\302\271?\256\247s\260X\003\275?\036\325K\346I\205\270\277mTNy\214i\265?\004\004N\\\242w\263?\372\242B\355\nB\312\277\004\2664\212\037\023\306?\215\2521\003X \261\277\020\313!\245W\030\322?\033o\317\032\324\325\301\277Nc\226\345\310\362\313?\343\205>u \225\265?V\314f\251\206\242\266?&^\264\202\222*\301\277auC\377\316(\300?\341\031.\367\022\345p?\310\326mlH\326\247?\274\357\206\363\224[\322\277mr\177A\342\235\263?\251\347\340\212\324\217\300\2776\002\252@\007\221m?/\324Kt\227\322\240?\377\265\3334dH\252\277t\320\230\024\023(\214\277\342\316\217\207\366P\300\277\232?i\250h\231\302\277\222\341\242\334\'\334\315\277\236\251\221\211x\331\257\277\377F\255h\362\004\315?\023\313\215\tj\231\211?ew}-\262)\303?\367/\366\331v\272N\277g\023\005u\332\365\257\277\260{Y,\241\021\317?i\241n\361\374T\223\277\226\314\0013\0326\324?\2460c\247\245e\317\277\261\203zG\256?\260?{A3\205\357;\243\277=\253\247\351D\362\270?\225\336L\0334\315\266\277;\333\227vL\010\302\277\307\t\313\263\274\027\271\277T\366+\215\273\355\300\277\203r\275\332\316\300\240\277\352u\000\332k\212\260\277W\317\371\353d\240d?\004\257\370\031\255\211\324\277\000[\253@\217Z\305?\247\005,\303*\231\304\277\222\020\261=Dd\312?\353@O\021\277\267\265?kG\302a\276\014\306?\031Rj\2025\005\272\277z\261X\261\315r|\277E\343\214\244\347Q\254?\232\313c`S\360Y?R\337\326\343\275\027\312\277\373\255\262\266\222\356\246\277\260EM\007\022\221\275\277\217\337\221\267j\340\304?\204!\021\305\207\355\262?\302d+8<\252\311?\311\311(\325P!\270\277m1\362qz\374\277\277L\272\263\022\230\007\301\277\341P\000\000\363\006\276?\327h\211\256\311\204\242\277N\221\215,B\300\251?\326Eh,\343\204\317\277dOJ\024R\361\274?W%\'|~}\222\277h\035Y\254\033\370\241?\"\2035\264\014\210\300\277<\217\331\345f\353\220\277+\002\265J+\217\277?\246\261j_/r\313?\002\231\013\345kO\322\2770\260\267G\033c\260\277\272\017\033|\204\316\227\277\271}\260\002\3102\322?\035\221\307\337I\276\273?>\327Q\256\212\345\305?\371\254\210\"\217\272\277\277j\206g\001\024\216\252\277\324\3402UB\350\237\277\214\316m6\224e\250\277j\341\357\211\013\211\246\277\2317\321\306ao\236?\323<V\233/\344\244?\340\017\241\336\024\030v?\202\337\335{Mi\306?S\3121\026\236\021\277\2772\022:\267[z\303?\n\373\366\220\204\367\265?\340,6\307\351\265\317\277)<\350\2357\275\304?)\222q\t\314\201\313?+\252M?&q\266\277\233\244y\022\224\202\273\277\t*\202G6\251\237?\315\210\210&\337r\312?)\215\202#\025\344\261\277\2017\304\202ul\322\277\357%\221\254UL\257?\003\320\200Y\006&\301?+#\032\232\3454\261\277\320\t\236u#a\277\277\204,,+\373i\245?\304f\3612\031 \256\277\372\354\017b\363=\200\277\222\214\264\361F\256\273?_{\270\311h\246\272\277\366P\215\240\365{\263?\265y\204\346S\026\241?\333\303+\275\031\250\323\277\201\222\321\020K\333\213\277\370\217%[ \377\315\277\252/n\033\006\375\311?\014\347\234~\350a\251?8\346{\237\024\270\271?J}\357`u(\301\277W\206>\222\312\361\250?\314\354\305\226\230v\274\277%\254\035\273\244a\300\277 \365\0217\024\260\204?\316*\321\341\024r\215?}\337ZVL\222\315\277<l\273E\243y\271?\3411\311n\365?\245\277\334\262o)\373s\274?g\026\215\014\334\273\320\277\345{\243\337\252\247\320?w\260\316\033X\231\302\277HN\272\341\017\361\303\277\013\227\262A(6\310\277k\315\350\365\255\327\262?\337\2019,&4\311\277\037\013%\000\025)\300\277\375\374\374{Ff\302\277\364\3545i\234O\222?\316\256\215\232x\024\327?m\256UP`3\266?m%\220u\272Z\305\277\320\352\027\271\343\203\232?\246\017\362)4\310\256\277\2678\345A\021\254\253\277\266R\306\262\250O\250?)@\323f\026\030\246\277I\246\r\232:\022\235?f\217\302;\256\233\303\277\225oj>\007\024\266\277X\226\274\034\334&\244\277#\021r\\\006\322\203\277\357\320S\027\227\337\313\277\245\255\367\313\371O\314\277^J\371\217\007C\227?*k\247\000\260\226\317\277\333^\014-,~\264?kZ*\251\016Z\243?t\352\237\017\223\351\234\277\030uH\260\366\361\240?\010_|\370\254\222\267\277b-Fu\325\320\205?f\"\2541\223\361\261?\276\3234\204F\027\201?\016\372X\236\275\211\316\277\333\340p\312\261\013\336?h\317&V\260\241\313\277\270\324^\261\310e\305? \340&\332\\\315\251\277F\267rd\005\321v\277\007M\277C\242\t\263\277\014Z\265]\2266\310\277\260I\027v\334\256\311\277X\213\035f\0271\322\277\034\022\372\343*\231~?/}L\035\307\207\321?\365\362z\025W\320\231?\267\270\345\272\3434\331\277T\302\200~\002q\303?G\330\346\225\363F\312?M\377h\261\2419\224\277\032iq|\034\366\320?\361\317\345\371!\022\200?\325\213Vu\222\003\315?\376\330\267\222\2075\221\277~\304\235B&\363\300? _L\225y\260\261\2772\274\320F\255z\224?\364\355\212\234\260\004\310\277\004%\260\235\334\376\324\277zd\224\333*J\313\277\2115\025+VB\277\277\311\200\342\026a\355\277\2775\367\325\210\"\245\302\277\023%kf\205\377\264?33X\027u^\260\277[\223L\221\010Z\226?^=Z\3620\317\305\277\322\362\372zW\377\272?\"o>\325C2\312?~Si\361\336\245\270?!\006~F\036D\234\277#\227\360\023\301\314\276?\203\3360,\366.\310?yv\313\\l\025\324\277d\244\335\357@\032\251?\035\314\027\226\027\312\267?\233\200\246\326\026M\310?\352p\004z\377\273\270?\313B\216\335+\031\322\277\237\324\223\254\005\354\300\277\217\020wJ\242\316\302?=X\177\241\226\376\261\277\177\242\264N\016/\274\277\322\003B9rj\276\277W\324\0072\224w\265?\030\304\330\322r\374\210?7U\306HR^\324?\016\227\r\301\214\372\302\277\310\307\331qy\207\300\277\214\220\3348$_\302?J\301\370&\247\210\310\277=\302\364?i!\300\277\177\361\305>\2716\277\277\213\360\322\213Q\001\257?\231\177\313x\2640\311\277\001H0Q\370e\222?\316nZ\373\313\037\270\277\351W\317\341\217\375\305?\226m\242\314\217\240\213\277\\\265I\220\246\335\243?|\244\033A\0169\304?\335\231\201w\240\002\304\277\007i\317\364(\316\243?\332v\220\2614\006\266\277x\375`\275\321\325\243\277\2017\355Lh<\320\277\027Wu~gq\316?\254\"\021\326r\261\263?\014\251\377D\300\323\322\277\253/HK]T\305\277\033Aa\373\3456\303\277\347,u\321I\342\273\277>\251\031\221\361\226\200?\273\335\253t\233\315\243?\257G4)\'V\300\277l\321y\312}\372\311?\365.]z\326\215\321\277\257@\014=D}\307\2773JO\337\033z\303?\366 \367\007\302y\177\277\0216\374c\360\373\306?S\375\243\231\267\025\244\277\232\355\205\213\236|\251?\273^\314u\034\237\262\277#\014p$\371\217\220\277\\\001M\377XK\276?\327:\262\241\217S\326?\236\300\"\031\314_\237?\034\334O\342\274W\276\277\261\2732i\200\016\306?\225\261\374\245\344\\\304\277X\250_\3716=\304\277f\rto\332I\300\277X\371(\277\007%\226\277\031\236o\271\335\367\277\277\027 \347\032J\277\263?\356\354-\235X\210\331\277a\262\240\200C\322\310\277\351\361!e;\301\300?\267\177\242\346\177\225\301?\345z\214\2171\311\311?\343l\010.\371\301\243?\252\335\201^4\003\306?pc\305\331\360\331\323\277\251\016\353\242\005\'\322?@%<0\276\205\211?\325\202o\263$\022\250?\353\2025\271X\336\260\277\004J\317\327Q\014\234\277{-T\333\311\006\310\277R\021\037\236v[\260?\312\261\321\226\303X\277\277\352V\344\003\331\315\301\277\211D\233\223\016\233\261?\337R\351\254\342D\244\277\262\025\274\006\312a\253\277\352\254ti\266N\263?\355\220\\\357\004\177\214\277.\374d\006O\242\271?\376\227=V\'\326\303?U7\330P\311o\274\277\022\003\272\253\035\240\214\277\177\256\215\347\330I\247\277\315\346\240/>\t\266\277\027Sx\277zs\267\277S\023l\373|\356\256?\304b\366\265\234\202\245?\242\307\331\034\232\277{?\021\205\323aI\331\226?\037\017qO\366\003\325?\t\351\340V\021\323\255\277\274\233)\244\360\004[?\213\360\371\211\037\314\220?%Y\341\255\366\336\307?7\310\016s\327j\246?\025\256\325\375\327\211\247?\035\352\356\007.\275\300\277\247\017\372\303\223\250\262?H\031Rx7\347\206?\275\3212\320\302 \261\277\336\230\242v-=\302\277|&\243H\332\347\242\277\206\3624\271=\023\246\277\037\376>\204\004\024\265\277\347#ZWJ\324\323\277\242*\346\245k,\262\277j\371\272\330\021\250\323\277\036\3546\244XS\226?[j\016\342\000n\316?T7I\026S\n\252\277\307\327\211\276\364\356\271?\307\253\006\266\256u\267\277uK\007juN\266\277\024\316-\001\231\263\316?\306\222q\327\220G\247\277\337\036R\3734\246\312?\036\275\344H\r>\266?\207\014\351=\210\332\256\277\273\272\220\313]|\277?\240\364jF\216\274\245\277a\017\365\235\017*\243\277B\\\010\236\323\221\232?\314\2436\362k\023\254\277\364cN\372\303\323\274\277#(a\244\303\314\310?\272t\206\014\376\311\320\277\322b\311m\265\201\247?~9\031\235\371A\271?\206\216\270\024\007\346\266\277Q\030\263\3316\003\262\277\351q\266\365\240L\311\277\3556\315tG\346\262?a\351R\361[\035\302?\304\337R{\020\"\314\277x\246C\333X\361\313\277\311\226\360\026\235\303\257?\363\\\344\370\255)\273?~2\'\350\026\254\300\277\214\257P\320IW\316\277(F\343\216Q\367\320\277\354`\024\305(\364\255?z\231yd.\275\310?\2322;<u.\310\2770\367\316\277b(\262\277xi\364\227\006\337\322\277-\035\030\tS\234\235?i\362\314\3550\035\272\277} \020--\336\247\277#\027\027\355\330\214\321?t\357\314\377B2\275?-3\017`\022[\235\277\220\251\303\205\271\375\272\277Y\310-\364\204\032\264?H`l\010$u\270?X\372\322\325\264\035\271\277d\244\"\263\204\357\277?\225Y\324%+\335\235\277(&\373\362\237d\270?\301\225\350(k\326\304?h)U\247\363\256\250\277\237>;\202\265r\315\277>\254\317\314I\332\230?\325\244\311J\002\360\324\277<\224`\3367\010\252?\373\311\206\236\273w\226?\307[\214\202\010\205\301\277\034b\204,\034\320\243?\225\360\242^\252o\265?\010l:0f\346\260?\247\301\222\320\246=\245?"
      }
    }
  }
}
node {
  name: "layer_0_type_0/matrix/read"
  op: "Identity"
  input: "layer_0_type_0/matrix"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_0_type_0/matrix"
      }
    }
  }
}
node {
  name: "layer_0_type_0/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
        }
        tensor_content: "!\262\350\344\'Q\366\277\226\003\256\\\222n\242?\257@\0023\"\017\340\277\277\214\010\272\270\215\340?\214\017.\257\3452\324?w\304\343\204\365\350\316\277b<o/\311\366\355\277\313C^\240O\027\307?t]\207\377\3501\260?~\332\355\206\320\204\000@"
      }
    }
  }
}
node {
  name: "layer_0_type_0/bias/read"
  op: "Identity"
  input: "layer_0_type_0/bias"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_0_type_0/bias"
      }
    }
  }
}
node {
  name: "layer_0_type_0/MatMul"
  op: "MatMul"
  input: "Reshape_15"
  input: "layer_0_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "layer_0_type_0/add"
  op: "AddV2"
  input: "layer_0_type_0/MatMul"
  input: "layer_0_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_0_type_0/Tanh"
  op: "Tanh"
  input: "layer_0_type_0/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_0_type_0/Reshape/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "layer_0_type_0/Reshape"
  op: "Reshape"
  input: "layer_0_type_0/Tanh"
  input: "layer_0_type_0/Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_1_type_0/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
          dim {
            size: 10
          }
        }
        tensor_content: ",\311X\330\240\316\233?\304u\211\320\303\311\317?\032\234S\323\313\023\322\277\270\321~\203;j\272\277\347\212x\303m\351\324?\270\023T\211\326\371\307\277\247\374\367U\342\254\326?\002\362\227jmO\262?7\207V\222\332F\331\277U\363\013\270Ut\263\277\271\316\344\335-\265\236?\\=T\201\245\265\320\277^\372\371)\353\313\305\277 \307b\'\025\310\317?\321P\"c#\236\203?\370\262W \333\261\336?\024\032\303\375\214\t\315\277\310\247U$\217\003\334?\210\267\212\'\312\014\323?\236\3404\340\371\316\261\277\353\272\200g\226\204\310?\230\366+n9v\265\277np\225\227`\007\327\277\353\213H \303\251\303?\345bW\024\3719\276?\2475\214\010|\036\301\2775\272\322\365\000h\270?P\371\360\365\227S\322\277\364\000\020\003\210\376\333?\246\251\253\017\227u\321?N\312\213T\006\335\317?\030\217\223\234\232\337{?Y\033\376_\352\331\301?\245WV\210\276\233\315\277Dv\3419.\002\335\277\263\274\335\242)t\316\277\215\030\320\326P\233\256?\211\1778ok\256\301?\243\224U\'\327>\304\277)@\356\354\315\320[?\351\325\007\260\351\033\305\277\320\002\200}pv\267\277<\223\010\266|\226\266\277\343\242\263o\336\326\314?\332\014\022\3378\275\313?\256c\007\255w\036\323?T\254s\260c\307\266?\226\220b+&\206\256\277\230\320s\006\300\021\334?.\021\262\327\352\350\326?`l\255\312E9\335?\326!\203b\314\013\205\277\023\227{\030c@\273\277F\217gD\334\334\325\277\271\001\250NCQ\252?#a\254*y\260\270\277;=\214P>W\321?\227\035<\027Aw\321\277\276R>\243\253\235\303\277l,|\016b4\267?\353\245\306\323\246}\325\277\363N\343\277 \361\307\277I\351\314G\226\210\201\277\345X\010\274\247\343\310\277\223\006\312\3711C\304?\203\333}\360G\367\325?-\354>HD\316\305?W\260\233\237\254\241\317?\205\254P\374\233\240\300\277\312G\251\263\3247\274?6l\376E\033g\302\277\307\343.z]\030\321\2779\221O\362\357\237\315\277\2242\034\335\366\252\235\277d\375\270\233\301\013\241?T\275`\204\350q\324?u\226CR:_\267?\334(c\327\037\t\260?\354O<\310v\227\306?\273/\004t\276\337\315?r\333J\314\341\214\231?e\032\201\315\274\016\266?\320\033\033\006yK\242\277\007<\007<\366\362\330\277l\320\231\007\336\312\302\277\320\375\352\370\373^\321\277\372\342S<eQ\304?\366\220\340.$W\301?\373d\375\032\007\331\300?\335D\023\266n\036\257?R\376\232L\252-\233\2773\264)\227U8\263?\227\226_\3356\247\326?\207V\254v\215\014\321\277\"\246G\2700\312\330?\344\"LoSs\270?\361H\0023%\200\325\277p\361rSDh\274?\217@iF\0009\300?\301a\353\3311q\326\277"
      }
    }
  }
}
node {
  name: "layer_1_type_0/matrix/read"
  op: "Identity"
  input: "layer_1_type_0/matrix"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_1_type_0/matrix"
      }
    }
  }
}
node {
  name: "layer_1_type_0/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
        }
        tensor_content: "\231\000\346\014\256\234\340\277/\354\241\215y\343\000\300 \207#\206\264\010\353\277\211\232\302\324\357i\320\277)>\003d!\202\362\277\276\221\372\220\265\302\377\277\237FAOs\204\354\277G\365\224\373\007\206\365?\3362\250ZA\321\315\277\'\224V\371s\333\264?"
      }
    }
  }
}
node {
  name: "layer_1_type_0/bias/read"
  op: "Identity"
  input: "layer_1_type_0/bias"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_1_type_0/bias"
      }
    }
  }
}
node {
  name: "layer_1_type_0/MatMul"
  op: "MatMul"
  input: "layer_0_type_0/Reshape"
  input: "layer_1_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "layer_1_type_0/add"
  op: "AddV2"
  input: "layer_1_type_0/MatMul"
  input: "layer_1_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_1_type_0/idt"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
        }
        tensor_content: "\026\214t\206\304\346\300?\035\024\304\337\006\277\300?\023\335\362~1\3234\277`exI\265\005\256?\214u\245\207\233|\310?\366+\271\245]\363\251?d\302\350;\261\257\305?\302ZP\347z\"\277?\340\316c\342c\332s?\360\004\036X\036\001\230?"
      }
    }
  }
}
node {
  name: "layer_1_type_0/idt/read"
  op: "Identity"
  input: "layer_1_type_0/idt"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_1_type_0/idt"
      }
    }
  }
}
node {
  name: "layer_1_type_0/Tanh"
  op: "Tanh"
  input: "layer_1_type_0/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_1_type_0/Reshape/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "layer_1_type_0/Reshape"
  op: "Reshape"
  input: "layer_1_type_0/Tanh"
  input: "layer_1_type_0/Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_1_type_0/mul"
  op: "Mul"
  input: "layer_1_type_0/Reshape"
  input: "layer_1_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "add_4"
  op: "AddV2"
  input: "layer_0_type_0/Reshape"
  input: "layer_1_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_2_type_0/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
          dim {
            size: 10
          }
        }
        tensor_content: "|\001\n\225\031n\276?\317I2,\314\223\300?-YAi\245\315\304\277k\266\350\nN\352\256?]\253m[\363\332\302?u\247a\017qn\335\277\357\213;$\207\337\317?\270\240\344\355\236\201\265\277\272b\247\022\020\016\223?\030=\021\313\347\033\322?\205\274?\376\363\314\330?\020\235\010\030\343\004\264?\2354\205\306f\306\327?\255\n\365\036.\275\336?\225\362a\021\305e\235\277\371dVc\346R\270?\267C\013\371\352\033\312\277\346oY\360\006\t\265\277\270>\373\241\024\217\333?_W\022\201\312f\326\277t\3608L\273b\306?\326:\'S`\350\266\277l\377\3119Z\350\255\277\024\376)\334\003\000\247?\016q]{\362L\322?\217}\336c\325\330\321?*\240\000\213E6\331\277\"\177J\305<+\223\277,:\360t.\262\317?u\214\003\354s0\322?\340\277Z\266^u\301\277\324\265\352\277\345\247\331?\204\022l\360\027\024\313\277\320\010\"c\313\304\320\277*\207\304\235\006\352\305\277\250\377@3\325\215\213\277\263\010\014\232\302\322\267\277\232\344\264\301\204\001\337\277q$\216\240m\351\264?\356d\216\325\032\303\306\277\362N\363\204\272\326\271\277w\302\304(6\307\327\277\347O@\022\014\r\254\277\201\351\201G\361\252\231?@D\r\223IT\305?-|\020\t|m\220?K\242\352\265\366\275\321\277\020\177\276k]#\245\277]\366\333\215B\372\304\2772\322\3268\\\335\225\277{q\330+\2574\315?\374\334C\036\347+\304?\246AL\301\244]\317\277\206\347.\323M\201\330\277i\201\026\247~V\303?\345\320\276\232\363W\254?l\026\272|5^\305?\275\211&[\"\377\306\277\'\350\027\002|\344\247?\354\027<fm{\303\277\'\335\237\177\\\302\304?\024\t\230\007\276[\205\277\227\032\3135\213!\260?\260\323\326c\205%\341\277Q\262\340 \365\242\317?\'\234>\241\245;\323?\356`8/L\240\300?\242Q\203\3349\371\315\277^\317T\231\0303\246?\0277\361\225\270[\267?v\307\207\247s\311\310?\233\325\242|\211\245\303?\206+\360\356\016+\250\277\216\220\264C\315\"\324?\320\023\2655z}\276?z\252\302>e\211\342\277k\360t\310\235\367\317\277U3\277\371\231\373\224?\014\346o\023\330\210\334?\234\3437\320\330\302\265?\"\203cRET\276\277C\254\013\247\237\342\305?\345\372\214\2568\232\336\277G7\242P\023\271\324?\244\350\016_\217j\235\277McU~\220w\304\2772\177\037cM\371\262\277\226}r\021\220W\307\2779;\2738\3606\272?\'r\245\017*j\305\277\307Z9F\275\010\310?t\352\316\272\277_\307\277A:Z[&\337\303\277\377\250\226\325%\354\321\277\277\007\013\235\0361\334\277\241\214\266Y-\266\273?\027xP\372|(\275\277\226\3342yS\327\334\277n\2057\370\377\030\306?\367\324\356\023\243\302\214?"
      }
    }
  }
}
node {
  name: "layer_2_type_0/matrix/read"
  op: "Identity"
  input: "layer_2_type_0/matrix"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_2_type_0/matrix"
      }
    }
  }
}
node {
  name: "layer_2_type_0/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
        }
        tensor_content: "\r+\021\206\257\000\370\277\021\244\353Tc\370\354\277\r\303\366G[P\305?\337\352H\372\0245\304\277]zZ\223t\300\364\277\033{\375\2227\347\334?\351\306G\321\023\375\321?r\372\320\273j\202\360?&\027E\243ed\377?\360\235\240J\007\233\350\277"
      }
    }
  }
}
node {
  name: "layer_2_type_0/bias/read"
  op: "Identity"
  input: "layer_2_type_0/bias"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_2_type_0/bias"
      }
    }
  }
}
node {
  name: "layer_2_type_0/MatMul"
  op: "MatMul"
  input: "add_4"
  input: "layer_2_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "layer_2_type_0/add"
  op: "AddV2"
  input: "layer_2_type_0/MatMul"
  input: "layer_2_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_2_type_0/idt"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
        }
        tensor_content: "\352A\030\312BF\305?\034\344l\002n/\300?X~\302{U\342\256\277\177\266\353\240A\306\220\2778\000\021u{L\310?\"\3339\367\322\017\276?\013{\033a\337\333\250?q\020rFT\007\274?\357\177<\330\362\357\310?\337\326\245\255\r=\245?"
      }
    }
  }
}
node {
  name: "layer_2_type_0/idt/read"
  op: "Identity"
  input: "layer_2_type_0/idt"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_2_type_0/idt"
      }
    }
  }
}
node {
  name: "layer_2_type_0/Tanh"
  op: "Tanh"
  input: "layer_2_type_0/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_2_type_0/Reshape/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\n\000\000\000"
      }
    }
  }
}
node {
  name: "layer_2_type_0/Reshape"
  op: "Reshape"
  input: "layer_2_type_0/Tanh"
  input: "layer_2_type_0/Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_2_type_0/mul"
  op: "Mul"
  input: "layer_2_type_0/Reshape"
  input: "layer_2_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "add_5"
  op: "AddV2"
  input: "add_4"
  input: "layer_2_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "final_layer_type_0/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
          dim {
            size: 10
          }
        }
        tensor_content: "\277\254\223\307\014>\331?e\373)\245\236\010U?\222\220\032mEq\270?M\333\031bf\370\337?\364\020\343X\204\317\266\277\025\001\261\306(\356\321?)\210\215S)\323\340?%N1)\254\333\320\277\200\025\352\005{\223\321\277ia\230\316\272\310\323\277P\033p?wu\320?$\032\214\034\206\025\311?\033\336?l\200\317\263\277C\026B\374U1\334\277\226\036]\356\232\340\252?<\374\271p3\021\233\277\255\201q\364\231\252\335?7\207^\026\037\267\264\277Z\274Y\225\331-\310?\264\331\264?~&\241?N\2775_{\243\313?\372fUu\010n\343?\013\277\370\353\373\354\312?\315\366{\222J\356\324?\332\316\211\222\360\211\325\277\256R\360Z\347\306\270?6\030\342\256\301S\322?\"\037z\301:4\263?\355\356\317\262h\n\203?\315\030k\210s\366\314\2778]\363\340\372\335\324\277&\370n\304Q\033\312\277I\227dYP\t\315?1Z\2508\032\307\304?\362\2335p\310\266v?\276\237\356\234[\021\325\277\257\264&\334\355\266\313\277(\300H\360C\347j\277\316\343i2\303\034\306?a\034\303Z\262\034\302?I/f+\260\226\335\277\355\276\304\000\216.\346\277\264\271\344\270\023.\301?\303\277!\342\032\346\263\2778C9\'*\343f?ok\356\025M^\305\277NhA\207l\340\240\277\001\311u\2554I\326\277\273\254\207\335\'X\322?J\367\305\365\200\006\267\277`\006\310\267_\246\264?\215\326-\370U\203\310?\277\206\261\217y\303\306?\215J\217\303o\306\307?\226b\305\376\203y\317\277i\330\320\271}\"\274?\032\013\220\266\013\266\257?\343\241j\225<\004f?v\267wO\222\346\325\277\324\212\332\323M\007\256?d\000\343\n\224\306\300?u\t>0\261\375\276?\307\023\307\345\340&\301?7\353\324U\257D\307?l\265\210#&~\335\277Y\336\333\205\324\244\256?\347P4\226\016\257\303\277\\os\035\375a\333\277\206\034\231 \014j\273?\256\234\332D\276\355\303\277GD\354\303u\353\317\277v\366\235)\333\200\301?\3705J\314\376\355\324\277\301R\323\273\306\034\336?\232e-\010\317\037\267?\256\262\034!e{\263?\341\360\324\331I\356\331\277$\244DcbV\325?m\350.\237\325f\324\277\t<1X\251W\305?\227\277\351\214\n\023\217\277\177Lm\236\340r\260?\244\227\013A\206\036\240?\250\023\247\277\206h\313\277\232\220\207~\0306\346?\2154\'\263u+\337\277\356Tp\317p}\321\277:\246F\000\351\223\325\277\252\232y\330;\310\324\2778\rf\247\234\036\235?\360,\024Z\312\305\323?@\006\375D>\005\240?7\252\351Ju\363\276?\222S\202Q{1\336?Sg\342\234d\024\315?\346-\033\027\375C\314\277ff\237\243\337\177\336\277\027\266\2368\331\035\302?l\336r\353\251\240\301?<\305\\\204\025\224\254?"
      }
    }
  }
}
node {
  name: "final_layer_type_0/matrix/read"
  op: "Identity"
  input: "final_layer_type_0/matrix"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@final_layer_type_0/matrix"
      }
    }
  }
}
node {
  name: "final_layer_type_0/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 10
          }
        }
        tensor_content: "[\2564\222Xg\302?=o\311\325\276\006\347?\226z\210\265\214\351\367?\342J\262\027\2407\325?\207\361X\006\271\276\371\277d\330\274Y\314m\361?\177\305\204)#\240\367?\374\300/_R\030\340\277\262\250\347\266V\225\311\277>9\313\255\313\334\311\277"
      }
    }
  }
}
node {
  name: "final_layer_type_0/bias/read"
  op: "Identity"
  input: "final_layer_type_0/bias"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@final_layer_type_0/bias"
      }
    }
  }
}
node {
  name: "final_layer_type_0/MatMul"
  op: "MatMul"
  input: "add_5"
  input: "final_layer_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: false
    }
  }
}
node {
  name: "final_layer_type_0/add"
  op: "AddV2"
  input: "final_layer_type_0/MatMul"
  input: "final_layer_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "Shape_6"
  op: "Shape"
  input: "Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_25/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_25/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_25/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_25"
  op: "StridedSlice"
  input: "Shape_6"
  input: "strided_slice_25/stack"
  input: "strided_slice_25/stack_1"
  input: "strided_slice_25/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "strided_slice_26/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_26/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_26/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_26"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_26/stack"
  input: "strided_slice_26/stack_1"
  input: "strided_slice_26/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_15"
  op: "Mul"
  input: "strided_slice_25"
  input: "strided_slice_26"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_17/shape/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "Reshape_17/shape/2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 10
      }
    }
  }
}
node {
  name: "Reshape_17/shape"
  op: "Pack"
  input: "mul_15"
  input: "Reshape_17/shape/1"
  input: "Reshape_17/shape/2"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_17"
  op: "Reshape"
  input: "final_layer_type_0/add"
  input: "Reshape_17/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "MatMul"
  op: "BatchMatMulV2"
  input: "Reshape_17"
  input: "Reshape_16"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "Shape_7"
  op: "Shape"
  input: "Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_27/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_27/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_27/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_27"
  op: "StridedSlice"
  input: "Shape_7"
  input: "strided_slice_27/stack"
  input: "strided_slice_27/stack_1"
  input: "strided_slice_27/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "strided_slice_28/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_28/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "strided_slice_28/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_28"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_28/stack"
  input: "strided_slice_28/stack_1"
  input: "strided_slice_28/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "Reshape_18/shape/2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "Reshape_18/shape"
  op: "Pack"
  input: "strided_slice_27"
  input: "strided_slice_28"
  input: "Reshape_18/shape/2"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_18"
  op: "Reshape"
  input: "MatMul"
  input: "Reshape_18/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_21/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_21"
  op: "Reshape"
  input: "Reshape_18"
  input: "Reshape_21/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "mul_20/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "mul_20"
  op: "Mul"
  input: "add"
  input: "mul_20/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_dipole/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "o_dipole/shape"
  op: "Pack"
  input: "o_dipole/shape/0"
  input: "mul_20"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "o_dipole"
  op: "Reshape"
  input: "Reshape_21"
  input: "o_dipole/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_22/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_22/shape/2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "Reshape_22/shape"
  op: "Pack"
  input: "Reshape_22/shape/0"
  input: "add"
  input: "Reshape_22/shape/2"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_22"
  op: "Reshape"
  input: "o_dipole"
  input: "Reshape_22/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Sum/reduction_indices"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "Sum"
  op: "Sum"
  input: "Reshape_22"
  input: "Sum/reduction_indices"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "o_global_dipole/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\003\000\000\000"
      }
    }
  }
}
node {
  name: "o_global_dipole"
  op: "Reshape"
  input: "Sum"
  input: "o_global_dipole/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "split/split_dim"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "split"
  op: "Split"
  input: "split/split_dim"
  input: "Reshape_22"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "num_split"
    value {
      i: 3
    }
  }
}
node {
  name: "gradients/Shape"
  op: "Shape"
  input: "split"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/grad_ys_0/Const"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
        }
        double_val: 1.0
      }
    }
  }
}
node {
  name: "gradients/grad_ys_0"
  op: "Fill"
  input: "gradients/Shape"
  input: "gradients/grad_ys_0/Const"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "index_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/zeros_like"
  op: "ZerosLike"
  input: "split:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/zeros_like_1"
  op: "ZerosLike"
  input: "split:2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/split_grad/concat"
  op: "ConcatV2"
  input: "gradients/grad_ys_0"
  input: "gradients/zeros_like"
  input: "gradients/zeros_like_1"
  input: "split/split_dim"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_22_grad/Shape"
  op: "Shape"
  input: "o_dipole"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_22_grad/Reshape"
  op: "Reshape"
  input: "gradients/split_grad/concat"
  input: "gradients/Reshape_22_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/o_dipole_grad/Shape"
  op: "Shape"
  input: "Reshape_21"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/o_dipole_grad/Reshape"
  op: "Reshape"
  input: "gradients/Reshape_22_grad/Reshape"
  input: "gradients/o_dipole_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_21_grad/Shape"
  op: "Shape"
  input: "Reshape_18"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_21_grad/Reshape"
  op: "Reshape"
  input: "gradients/o_dipole_grad/Reshape"
  input: "gradients/Reshape_21_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_18_grad/Shape"
  op: "Shape"
  input: "MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_18_grad/Reshape"
  op: "Reshape"
  input: "gradients/Reshape_21_grad/Reshape"
  input: "gradients/Reshape_18_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/MatMul_grad/MatMul"
  op: "BatchMatMulV2"
  input: "gradients/Reshape_18_grad/Reshape"
  input: "Reshape_16"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/MatMul_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "Reshape_17"
  input: "gradients/Reshape_18_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/MatMul_grad/Shape"
  op: "Shape"
  input: "Reshape_17"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/MatMul_grad/Shape_1"
  op: "Shape"
  input: "Reshape_16"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/MatMul_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/MatMul_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/MatMul_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/MatMul_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients/MatMul_grad/Shape"
  input: "gradients/MatMul_grad/strided_slice/stack"
  input: "gradients/MatMul_grad/strided_slice/stack_1"
  input: "gradients/MatMul_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/MatMul_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/MatMul_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/MatMul_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/MatMul_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients/MatMul_grad/Shape_1"
  input: "gradients/MatMul_grad/strided_slice_1/stack"
  input: "gradients/MatMul_grad/strided_slice_1/stack_1"
  input: "gradients/MatMul_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/MatMul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/MatMul_grad/strided_slice"
  input: "gradients/MatMul_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/MatMul_grad/Sum"
  op: "Sum"
  input: "gradients/MatMul_grad/MatMul"
  input: "gradients/MatMul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/MatMul_grad/Reshape"
  op: "Reshape"
  input: "gradients/MatMul_grad/Sum"
  input: "gradients/MatMul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/MatMul_grad/Sum_1"
  op: "Sum"
  input: "gradients/MatMul_grad/MatMul_1"
  input: "gradients/MatMul_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/MatMul_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/MatMul_grad/Sum_1"
  input: "gradients/MatMul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_17_grad/Shape"
  op: "Shape"
  input: "final_layer_type_0/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_17_grad/Reshape"
  op: "Reshape"
  input: "gradients/MatMul_grad/Reshape"
  input: "gradients/Reshape_17_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_16_grad/Shape"
  op: "Shape"
  input: "Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_16_grad/Reshape"
  op: "Reshape"
  input: "gradients/MatMul_grad/Reshape_1"
  input: "gradients/Reshape_16_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/final_layer_type_0/add_grad/Shape"
  op: "Shape"
  input: "final_layer_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/final_layer_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "final_layer_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/final_layer_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/final_layer_type_0/add_grad/Shape"
  input: "gradients/final_layer_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/final_layer_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients/Reshape_17_grad/Reshape"
  input: "gradients/final_layer_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/final_layer_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/final_layer_type_0/add_grad/Sum"
  input: "gradients/final_layer_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/Slice_3_grad/Shape"
  op: "Shape"
  input: "Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients/Slice_3_grad/Rank"
  input: "gradients/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "Slice_3/begin"
  input: "gradients/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients/Slice_3_grad/Shape_1"
  input: "gradients/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients/Slice_3_grad/sub"
  input: "Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/Slice_3_grad/sub_1"
  input: "gradients/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients/Slice_3_grad/Reshape"
  input: "gradients/Slice_3_grad/Reshape_1"
  input: "gradients/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients/Reshape_16_grad/Reshape"
  input: "gradients/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/final_layer_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/final_layer_type_0/add_grad/Reshape"
  input: "final_layer_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/Reshape_14_grad/Shape"
  op: "Shape"
  input: "o_rot_mat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients/Slice_3_grad/Pad"
  input: "gradients/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_5_grad/Shape"
  op: "Shape"
  input: "add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_5_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/add_5_grad/Shape"
  input: "gradients/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_5_grad/Sum"
  op: "Sum"
  input: "gradients/final_layer_type_0/MatMul_grad/MatMul"
  input: "gradients/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients/add_5_grad/Sum"
  input: "gradients/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_5_grad/Sum_1"
  op: "Sum"
  input: "gradients/final_layer_type_0/MatMul_grad/MatMul"
  input: "gradients/add_5_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/add_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/add_5_grad/Sum_1"
  input: "gradients/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/mul_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_2_type_0/mul_grad/Shape"
  input: "gradients/layer_2_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients/add_5_grad/Reshape_1"
  input: "layer_2_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_2_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients/layer_2_type_0/mul_grad/Mul"
  input: "gradients/layer_2_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/layer_2_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_2_type_0/mul_grad/Sum"
  input: "gradients/layer_2_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/concat_1_grad/mod"
  op: "FloorMod"
  input: "concat_1/axis"
  input: "gradients/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "Reshape_8"
  input: "Reshape_12"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/concat_1_grad/mod"
  input: "gradients/concat_1_grad/ShapeN"
  input: "gradients/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients/Reshape_14_grad/Reshape"
  input: "gradients/concat_1_grad/ConcatOffset"
  input: "gradients/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients/Reshape_14_grad/Reshape"
  input: "gradients/concat_1_grad/ConcatOffset:1"
  input: "gradients/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_2_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_2_type_0/mul_grad/Reshape"
  input: "gradients/layer_2_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/transpose"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/concat_1_grad/Slice"
  input: "gradients/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_1/transpose"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients/concat_1_grad/Slice_1"
  input: "gradients/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_2_type_0/Tanh"
  input: "gradients/layer_2_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/transpose_grad/InvertPermutation"
  op: "InvertPermutation"
  input: "filter_type_0/transpose/perm"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/transpose_grad/transpose"
  op: "Transpose"
  input: "gradients/Reshape_8_grad/Reshape"
  input: "gradients/filter_type_0/transpose_grad/InvertPermutation"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tperm"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/transpose_grad/InvertPermutation"
  op: "InvertPermutation"
  input: "filter_type_1/transpose/perm"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/transpose_grad/transpose"
  op: "Transpose"
  input: "gradients/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_1/transpose_grad/InvertPermutation"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tperm"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_2_type_0/add_grad/Shape"
  input: "gradients/layer_2_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients/layer_2_type_0/Tanh_grad/TanhGrad"
  input: "gradients/layer_2_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/layer_2_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_2_type_0/add_grad/Sum"
  input: "gradients/layer_2_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_0/Slice_5_grad/Rank"
  input: "gradients/filter_type_0/Slice_5_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_5/begin"
  input: "gradients/filter_type_0/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_5_grad/Shape_1"
  input: "gradients/filter_type_0/Slice_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_5_grad/sub"
  input: "filter_type_0/Slice_5/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/Slice_5_grad/sub_1"
  input: "gradients/filter_type_0/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_0/Slice_5_grad/Reshape"
  input: "gradients/filter_type_0/Slice_5_grad/Reshape_1"
  input: "gradients/filter_type_0/Slice_5_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_5_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_0/transpose_grad/transpose"
  input: "gradients/filter_type_0/Slice_5_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_1/Slice_5_grad/Rank"
  input: "gradients/filter_type_1/Slice_5_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_5/begin"
  input: "gradients/filter_type_1/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_5_grad/Shape_1"
  input: "gradients/filter_type_1/Slice_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_5_grad/sub"
  input: "filter_type_1/Slice_5/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/Slice_5_grad/sub_1"
  input: "gradients/filter_type_1/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_1/Slice_5_grad/Reshape"
  input: "gradients/filter_type_1/Slice_5_grad/Reshape_1"
  input: "gradients/filter_type_1/Slice_5_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_5_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_1/transpose_grad/transpose"
  input: "gradients/filter_type_1/Slice_5_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/layer_2_type_0/add_grad/Reshape"
  input: "layer_2_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/AddN"
  op: "AddN"
  input: "gradients/add_5_grad/Reshape"
  input: "gradients/layer_2_type_0/MatMul_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/add_5_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/add_4_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_4_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/add_4_grad/Shape"
  input: "gradients/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_4_grad/Sum"
  op: "Sum"
  input: "gradients/AddN"
  input: "gradients/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients/add_4_grad/Sum"
  input: "gradients/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN"
  input: "gradients/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/add_4_grad/Sum_1"
  input: "gradients/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/mul_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_1_type_0/mul_grad/Shape"
  input: "gradients/layer_1_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients/add_4_grad/Reshape_1"
  input: "layer_1_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_1_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients/layer_1_type_0/mul_grad/Mul"
  input: "gradients/layer_1_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/layer_1_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_1_type_0/mul_grad/Sum"
  input: "gradients/layer_1_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_1_type_0/mul_grad/Reshape"
  input: "gradients/layer_1_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_1_type_0/Tanh"
  input: "gradients/layer_1_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_1_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_1_type_0/add_grad/Shape"
  input: "gradients/layer_1_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients/layer_1_type_0/Tanh_grad/TanhGrad"
  input: "gradients/layer_1_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/layer_1_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_1_type_0/add_grad/Sum"
  input: "gradients/layer_1_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/layer_1_type_0/add_grad/Reshape"
  input: "layer_1_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/AddN_1"
  op: "AddN"
  input: "gradients/add_4_grad/Reshape"
  input: "gradients/layer_1_type_0/MatMul_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/layer_0_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_1"
  input: "gradients/layer_0_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_0_type_0/Tanh"
  input: "gradients/layer_0_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_0_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_0_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_0_type_0/add_grad/Shape"
  input: "gradients/layer_0_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients/layer_0_type_0/Tanh_grad/TanhGrad"
  input: "gradients/layer_0_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/layer_0_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_0_type_0/add_grad/Sum"
  input: "gradients/layer_0_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/layer_0_type_0/add_grad/Reshape"
  input: "layer_0_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/Reshape_15_grad/Shape"
  op: "Shape"
  input: "Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_15_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_0_type_0/MatMul_grad/MatMul"
  input: "gradients/Reshape_15_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/Slice_2_grad/Shape"
  op: "Shape"
  input: "Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients/Slice_2_grad/Rank"
  input: "gradients/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "Slice_2/begin"
  input: "gradients/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients/Slice_2_grad/Shape_1"
  input: "gradients/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients/Slice_2_grad/sub"
  input: "Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/Slice_2_grad/sub_1"
  input: "gradients/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients/Slice_2_grad/Reshape"
  input: "gradients/Slice_2_grad/Reshape_1"
  input: "gradients/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients/Reshape_15_grad/Reshape"
  input: "gradients/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_13_grad/Shape"
  op: "Shape"
  input: "o_descriptor"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients/Slice_2_grad/Pad"
  input: "gradients/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/concat_grad/mod"
  op: "FloorMod"
  input: "concat/axis"
  input: "gradients/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_grad/ShapeN"
  op: "ShapeN"
  input: "Reshape_7"
  input: "Reshape_11"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/concat_grad/mod"
  input: "gradients/concat_grad/ShapeN"
  input: "gradients/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients/concat_grad/Slice"
  op: "Slice"
  input: "gradients/Reshape_13_grad/Reshape"
  input: "gradients/concat_grad/ConcatOffset"
  input: "gradients/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients/Reshape_13_grad/Reshape"
  input: "gradients/concat_grad/ConcatOffset:1"
  input: "gradients/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/concat_grad/Slice"
  input: "gradients/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients/concat_grad/Slice_1"
  input: "gradients/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_14_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_8"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients/Reshape_7_grad/Reshape"
  input: "gradients/filter_type_0/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_14_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_8"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients/Reshape_11_grad/Reshape"
  input: "gradients/filter_type_1/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Slice_4"
  input: "gradients/filter_type_0/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/mul"
  input: "gradients/filter_type_0/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients/filter_type_0/MatMul_8_grad/Shape"
  input: "gradients/filter_type_0/MatMul_8_grad/strided_slice/stack"
  input: "gradients/filter_type_0/MatMul_8_grad/strided_slice/stack_1"
  input: "gradients/filter_type_0/MatMul_8_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients/filter_type_0/MatMul_8_grad/Shape_1"
  input: "gradients/filter_type_0/MatMul_8_grad/strided_slice_1/stack"
  input: "gradients/filter_type_0/MatMul_8_grad/strided_slice_1/stack_1"
  input: "gradients/filter_type_0/MatMul_8_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/MatMul_8_grad/strided_slice"
  input: "gradients/filter_type_0/MatMul_8_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/MatMul_8_grad/MatMul"
  input: "gradients/filter_type_0/MatMul_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_8_grad/Sum"
  input: "gradients/filter_type_0/MatMul_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/MatMul_8_grad/MatMul_1"
  input: "gradients/filter_type_0/MatMul_8_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_8_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_8_grad/Sum_1"
  input: "gradients/filter_type_0/MatMul_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Slice_4"
  input: "gradients/filter_type_1/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/mul"
  input: "gradients/filter_type_1/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients/filter_type_1/MatMul_8_grad/Shape"
  input: "gradients/filter_type_1/MatMul_8_grad/strided_slice/stack"
  input: "gradients/filter_type_1/MatMul_8_grad/strided_slice/stack_1"
  input: "gradients/filter_type_1/MatMul_8_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients/filter_type_1/MatMul_8_grad/Shape_1"
  input: "gradients/filter_type_1/MatMul_8_grad/strided_slice_1/stack"
  input: "gradients/filter_type_1/MatMul_8_grad/strided_slice_1/stack_1"
  input: "gradients/filter_type_1/MatMul_8_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/MatMul_8_grad/strided_slice"
  input: "gradients/filter_type_1/MatMul_8_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/MatMul_8_grad/MatMul"
  input: "gradients/filter_type_1/MatMul_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_8_grad/Sum"
  input: "gradients/filter_type_1/MatMul_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/MatMul_8_grad/MatMul_1"
  input: "gradients/filter_type_1/MatMul_8_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_8_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_8_grad/Sum_1"
  input: "gradients/filter_type_1/MatMul_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_0/Slice_4_grad/Rank"
  input: "gradients/filter_type_0/Slice_4_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_4/begin"
  input: "gradients/filter_type_0/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_4_grad/Shape_1"
  input: "gradients/filter_type_0/Slice_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_4_grad/sub"
  input: "filter_type_0/Slice_4/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/Slice_4_grad/sub_1"
  input: "gradients/filter_type_0/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_0/Slice_4_grad/Reshape"
  input: "gradients/filter_type_0/Slice_4_grad/Reshape_1"
  input: "gradients/filter_type_0/Slice_4_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_4_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_0/MatMul_8_grad/Reshape_1"
  input: "gradients/filter_type_0/Slice_4_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_1/Slice_4_grad/Rank"
  input: "gradients/filter_type_1/Slice_4_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_4/begin"
  input: "gradients/filter_type_1/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_4_grad/Shape_1"
  input: "gradients/filter_type_1/Slice_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_4_grad/sub"
  input: "filter_type_1/Slice_4/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/Slice_4_grad/sub_1"
  input: "gradients/filter_type_1/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_1/Slice_4_grad/Reshape"
  input: "gradients/filter_type_1/Slice_4_grad/Reshape_1"
  input: "gradients/filter_type_1/Slice_4_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_4_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_1/MatMul_8_grad/Reshape_1"
  input: "gradients/filter_type_1/Slice_4_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_2"
  op: "AddN"
  input: "gradients/filter_type_0/Slice_5_grad/Pad"
  input: "gradients/filter_type_0/MatMul_8_grad/Reshape"
  input: "gradients/filter_type_0/Slice_4_grad/Pad"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_0/Slice_5_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/mul_grad/Shape"
  input: "gradients/filter_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients/AddN_2"
  input: "filter_type_0/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/mul_grad/Mul"
  input: "gradients/filter_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/mul_grad/Sum"
  input: "gradients/filter_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_3"
  op: "AddN"
  input: "gradients/filter_type_1/Slice_5_grad/Pad"
  input: "gradients/filter_type_1/MatMul_8_grad/Reshape"
  input: "gradients/filter_type_1/Slice_4_grad/Pad"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_1/Slice_5_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/mul_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/mul_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/mul_grad/Shape"
  input: "gradients/filter_type_1/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/mul_grad/Mul"
  op: "Mul"
  input: "gradients/AddN_3"
  input: "filter_type_1/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/mul_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/mul_grad/Mul"
  input: "gradients/filter_type_1/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/mul_grad/Sum"
  input: "gradients/filter_type_1/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_10_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_10_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_10_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_10_grad/Shape"
  input: "gradients/filter_type_0/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_10_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/mul_grad/Reshape"
  input: "gradients/filter_type_0/add_10_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_10_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_10_grad/Sum"
  input: "gradients/filter_type_0/add_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_10_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/mul_grad/Reshape"
  input: "gradients/filter_type_0/add_10_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_10_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_10_grad/Sum_1"
  input: "gradients/filter_type_0/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_10_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_10_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_10_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_10_grad/Shape"
  input: "gradients/filter_type_1/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_10_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/mul_grad/Reshape"
  input: "gradients/filter_type_1/add_10_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_10_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_10_grad/Sum"
  input: "gradients/filter_type_1/add_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_10_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/mul_grad/Reshape"
  input: "gradients/filter_type_1/add_10_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_10_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_10_grad/Sum_1"
  input: "gradients/filter_type_1/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_5"
  input: "gradients/filter_type_0/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_6"
  input: "gradients/filter_type_0/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients/filter_type_0/MatMul_3_grad/Shape"
  input: "gradients/filter_type_0/MatMul_3_grad/strided_slice/stack"
  input: "gradients/filter_type_0/MatMul_3_grad/strided_slice/stack_1"
  input: "gradients/filter_type_0/MatMul_3_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients/filter_type_0/MatMul_3_grad/Shape_1"
  input: "gradients/filter_type_0/MatMul_3_grad/strided_slice_1/stack"
  input: "gradients/filter_type_0/MatMul_3_grad/strided_slice_1/stack_1"
  input: "gradients/filter_type_0/MatMul_3_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/MatMul_3_grad/strided_slice"
  input: "gradients/filter_type_0/MatMul_3_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/MatMul_3_grad/MatMul"
  input: "gradients/filter_type_0/MatMul_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_3_grad/Sum"
  input: "gradients/filter_type_0/MatMul_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/MatMul_3_grad/MatMul_1"
  input: "gradients/filter_type_0/MatMul_3_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_3_grad/Sum_1"
  input: "gradients/filter_type_0/MatMul_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_12"
  input: "gradients/filter_type_0/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_13"
  input: "gradients/filter_type_0/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_12"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients/filter_type_0/MatMul_7_grad/Shape"
  input: "gradients/filter_type_0/MatMul_7_grad/strided_slice/stack"
  input: "gradients/filter_type_0/MatMul_7_grad/strided_slice/stack_1"
  input: "gradients/filter_type_0/MatMul_7_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients/filter_type_0/MatMul_7_grad/Shape_1"
  input: "gradients/filter_type_0/MatMul_7_grad/strided_slice_1/stack"
  input: "gradients/filter_type_0/MatMul_7_grad/strided_slice_1/stack_1"
  input: "gradients/filter_type_0/MatMul_7_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/MatMul_7_grad/strided_slice"
  input: "gradients/filter_type_0/MatMul_7_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/MatMul_7_grad/MatMul"
  input: "gradients/filter_type_0/MatMul_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_7_grad/Sum"
  input: "gradients/filter_type_0/MatMul_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/MatMul_7_grad/MatMul_1"
  input: "gradients/filter_type_0/MatMul_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_7_grad/Sum_1"
  input: "gradients/filter_type_0/MatMul_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_5"
  input: "gradients/filter_type_1/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_6"
  input: "gradients/filter_type_1/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients/filter_type_1/MatMul_3_grad/Shape"
  input: "gradients/filter_type_1/MatMul_3_grad/strided_slice/stack"
  input: "gradients/filter_type_1/MatMul_3_grad/strided_slice/stack_1"
  input: "gradients/filter_type_1/MatMul_3_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients/filter_type_1/MatMul_3_grad/Shape_1"
  input: "gradients/filter_type_1/MatMul_3_grad/strided_slice_1/stack"
  input: "gradients/filter_type_1/MatMul_3_grad/strided_slice_1/stack_1"
  input: "gradients/filter_type_1/MatMul_3_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/MatMul_3_grad/strided_slice"
  input: "gradients/filter_type_1/MatMul_3_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/MatMul_3_grad/MatMul"
  input: "gradients/filter_type_1/MatMul_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_3_grad/Sum"
  input: "gradients/filter_type_1/MatMul_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/MatMul_3_grad/MatMul_1"
  input: "gradients/filter_type_1/MatMul_3_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_3_grad/Sum_1"
  input: "gradients/filter_type_1/MatMul_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_12"
  input: "gradients/filter_type_1/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_13"
  input: "gradients/filter_type_1/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_12"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients/filter_type_1/MatMul_7_grad/Shape"
  input: "gradients/filter_type_1/MatMul_7_grad/strided_slice/stack"
  input: "gradients/filter_type_1/MatMul_7_grad/strided_slice/stack_1"
  input: "gradients/filter_type_1/MatMul_7_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients/filter_type_1/MatMul_7_grad/Shape_1"
  input: "gradients/filter_type_1/MatMul_7_grad/strided_slice_1/stack"
  input: "gradients/filter_type_1/MatMul_7_grad/strided_slice_1/stack_1"
  input: "gradients/filter_type_1/MatMul_7_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/MatMul_7_grad/strided_slice"
  input: "gradients/filter_type_1/MatMul_7_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/MatMul_7_grad/MatMul"
  input: "gradients/filter_type_1/MatMul_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_7_grad/Sum"
  input: "gradients/filter_type_1/MatMul_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/MatMul_7_grad/MatMul_1"
  input: "gradients/filter_type_1/MatMul_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_7_grad/Sum_1"
  input: "gradients/filter_type_1/MatMul_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_6_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_6_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_3_grad/Reshape"
  input: "gradients/filter_type_0/Reshape_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_3_grad/Reshape_1"
  input: "gradients/filter_type_0/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_13_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_7_grad/Reshape"
  input: "gradients/filter_type_0/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_7_grad/Reshape_1"
  input: "gradients/filter_type_0/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_6_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_6_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_3_grad/Reshape"
  input: "gradients/filter_type_1/Reshape_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_3_grad/Reshape_1"
  input: "gradients/filter_type_1/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_13_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_7_grad/Reshape"
  input: "gradients/filter_type_1/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_7_grad/Reshape_1"
  input: "gradients/filter_type_1/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_4_grad/Shape"
  input: "gradients/filter_type_0/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_4_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Reshape_5_grad/Reshape"
  input: "gradients/filter_type_0/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_4_grad/Sum"
  input: "gradients/filter_type_0/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/Reshape_5_grad/Reshape"
  input: "gradients/filter_type_0/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_4_grad/Sum_1"
  input: "gradients/filter_type_0/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_9_grad/Shape"
  input: "gradients/filter_type_0/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_0/add_9_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_9_grad/Sum"
  input: "gradients/filter_type_0/add_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_0/add_9_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_9_grad/Sum_1"
  input: "gradients/filter_type_0/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_4_grad/Shape"
  input: "gradients/filter_type_1/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_4_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Reshape_5_grad/Reshape"
  input: "gradients/filter_type_1/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_4_grad/Sum"
  input: "gradients/filter_type_1/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/Reshape_5_grad/Reshape"
  input: "gradients/filter_type_1/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_4_grad/Sum_1"
  input: "gradients/filter_type_1/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_9_grad/Shape"
  input: "gradients/filter_type_1/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_1/add_9_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_9_grad/Sum"
  input: "gradients/filter_type_1/add_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_1/add_9_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_9_grad/Sum_1"
  input: "gradients/filter_type_1/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_4_grad/Reshape_1"
  input: "gradients/filter_type_0/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_9_grad/Reshape_1"
  input: "gradients/filter_type_0/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_4_grad/Reshape_1"
  input: "gradients/filter_type_1/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_9_grad/Reshape_1"
  input: "gradients/filter_type_1/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Tanh_2_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_2"
  input: "gradients/filter_type_0/Reshape_4_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/Tanh_5_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_5"
  input: "gradients/filter_type_0/Reshape_11_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Tanh_2_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_2"
  input: "gradients/filter_type_1/Reshape_4_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Tanh_5_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_5"
  input: "gradients/filter_type_1/Reshape_11_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/add_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_3_grad/Shape"
  input: "gradients/filter_type_0/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_3_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_2_grad/TanhGrad"
  input: "gradients/filter_type_0/add_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_3_grad/Sum"
  input: "gradients/filter_type_0/add_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_8_grad/Shape"
  input: "gradients/filter_type_0/add_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_8_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_5_grad/TanhGrad"
  input: "gradients/filter_type_0/add_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_8_grad/Sum"
  input: "gradients/filter_type_0/add_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_3_grad/Shape"
  input: "gradients/filter_type_1/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_3_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_2_grad/TanhGrad"
  input: "gradients/filter_type_1/add_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_3_grad/Sum"
  input: "gradients/filter_type_1/add_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_8_grad/Shape"
  input: "gradients/filter_type_1/add_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_8_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_5_grad/TanhGrad"
  input: "gradients/filter_type_1/add_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_8_grad/Sum"
  input: "gradients/filter_type_1/add_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_2_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_3_grad/Reshape"
  input: "filter_type_0/matrix_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_6_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_8_grad/Reshape"
  input: "filter_type_0/matrix_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_2_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_3_grad/Reshape"
  input: "filter_type_1/matrix_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_6_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_8_grad/Reshape"
  input: "filter_type_1/matrix_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/AddN_4"
  op: "AddN"
  input: "gradients/filter_type_0/add_4_grad/Reshape"
  input: "gradients/filter_type_0/MatMul_2_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_0/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_2_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_2_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_2_grad/Shape"
  input: "gradients/filter_type_0/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_2_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_4"
  input: "gradients/filter_type_0/add_2_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_2_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_2_grad/Sum"
  input: "gradients/filter_type_0/add_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_2_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_4"
  input: "gradients/filter_type_0/add_2_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_2_grad/Sum_1"
  input: "gradients/filter_type_0/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_5"
  op: "AddN"
  input: "gradients/filter_type_0/add_9_grad/Reshape"
  input: "gradients/filter_type_0/MatMul_6_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_0/add_9_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_7_grad/Shape"
  input: "gradients/filter_type_0/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_5"
  input: "gradients/filter_type_0/add_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_7_grad/Sum"
  input: "gradients/filter_type_0/add_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_5"
  input: "gradients/filter_type_0/add_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_7_grad/Sum_1"
  input: "gradients/filter_type_0/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_6"
  op: "AddN"
  input: "gradients/filter_type_1/add_4_grad/Reshape"
  input: "gradients/filter_type_1/MatMul_2_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_1/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_2_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_2_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_2_grad/Shape"
  input: "gradients/filter_type_1/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_2_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_6"
  input: "gradients/filter_type_1/add_2_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_2_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_2_grad/Sum"
  input: "gradients/filter_type_1/add_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_2_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_6"
  input: "gradients/filter_type_1/add_2_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_2_grad/Sum_1"
  input: "gradients/filter_type_1/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_7"
  op: "AddN"
  input: "gradients/filter_type_1/add_9_grad/Reshape"
  input: "gradients/filter_type_1/MatMul_6_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_1/add_9_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_7_grad/Shape"
  input: "gradients/filter_type_1/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_7"
  input: "gradients/filter_type_1/add_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_7_grad/Sum"
  input: "gradients/filter_type_1/add_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_7"
  input: "gradients/filter_type_1/add_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_7_grad/Sum_1"
  input: "gradients/filter_type_1/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat/axis"
  input: "gradients/filter_type_0/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/Reshape_2"
  input: "filter_type_0/Reshape_2"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_0/concat_grad/mod"
  input: "gradients/filter_type_0/concat_grad/ShapeN"
  input: "gradients/filter_type_0/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_0/add_2_grad/Reshape"
  input: "gradients/filter_type_0/concat_grad/ConcatOffset"
  input: "gradients/filter_type_0/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_0/add_2_grad/Reshape"
  input: "gradients/filter_type_0/concat_grad/ConcatOffset:1"
  input: "gradients/filter_type_0/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_2_grad/Reshape_1"
  input: "gradients/filter_type_0/Reshape_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_1_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat_1/axis"
  input: "gradients/filter_type_0/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/Reshape_9"
  input: "filter_type_0/Reshape_9"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_0/concat_1_grad/mod"
  input: "gradients/filter_type_0/concat_1_grad/ShapeN"
  input: "gradients/filter_type_0/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_0/add_7_grad/Reshape"
  input: "gradients/filter_type_0/concat_1_grad/ConcatOffset"
  input: "gradients/filter_type_0/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_0/add_7_grad/Reshape"
  input: "gradients/filter_type_0/concat_1_grad/ConcatOffset:1"
  input: "gradients/filter_type_0/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_10_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_10_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_7_grad/Reshape_1"
  input: "gradients/filter_type_0/Reshape_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat/axis"
  input: "gradients/filter_type_1/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/Reshape_2"
  input: "filter_type_1/Reshape_2"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_1/concat_grad/mod"
  input: "gradients/filter_type_1/concat_grad/ShapeN"
  input: "gradients/filter_type_1/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_1/add_2_grad/Reshape"
  input: "gradients/filter_type_1/concat_grad/ConcatOffset"
  input: "gradients/filter_type_1/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_1/add_2_grad/Reshape"
  input: "gradients/filter_type_1/concat_grad/ConcatOffset:1"
  input: "gradients/filter_type_1/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_2_grad/Reshape_1"
  input: "gradients/filter_type_1/Reshape_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_1_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat_1/axis"
  input: "gradients/filter_type_1/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/Reshape_9"
  input: "filter_type_1/Reshape_9"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_1/concat_1_grad/mod"
  input: "gradients/filter_type_1/concat_1_grad/ShapeN"
  input: "gradients/filter_type_1/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_1/add_7_grad/Reshape"
  input: "gradients/filter_type_1/concat_1_grad/ConcatOffset"
  input: "gradients/filter_type_1/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_1/add_7_grad/Reshape"
  input: "gradients/filter_type_1/concat_1_grad/ConcatOffset:1"
  input: "gradients/filter_type_1/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_10_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_10_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_7_grad/Reshape_1"
  input: "gradients/filter_type_1/Reshape_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Tanh_1_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_1"
  input: "gradients/filter_type_0/Reshape_3_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/Tanh_4_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_4"
  input: "gradients/filter_type_0/Reshape_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Tanh_1_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_1"
  input: "gradients/filter_type_1/Reshape_3_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Tanh_4_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_4"
  input: "gradients/filter_type_1/Reshape_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/add_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_1_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_1_grad/Shape"
  input: "gradients/filter_type_0/add_1_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_1_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_1_grad/TanhGrad"
  input: "gradients/filter_type_0/add_1_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_1_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_1_grad/Sum"
  input: "gradients/filter_type_0/add_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_6_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_6_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_6_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_6_grad/Shape"
  input: "gradients/filter_type_0/add_6_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_6_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_4_grad/TanhGrad"
  input: "gradients/filter_type_0/add_6_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_6_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_6_grad/Sum"
  input: "gradients/filter_type_0/add_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_1_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_1_grad/Shape"
  input: "gradients/filter_type_1/add_1_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_1_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_1_grad/TanhGrad"
  input: "gradients/filter_type_1/add_1_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_1_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_1_grad/Sum"
  input: "gradients/filter_type_1/add_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_6_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_6_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_6_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_6_grad/Shape"
  input: "gradients/filter_type_1/add_6_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_6_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_4_grad/TanhGrad"
  input: "gradients/filter_type_1/add_6_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_6_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_6_grad/Sum"
  input: "gradients/filter_type_1/add_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_1_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_1_grad/Reshape"
  input: "filter_type_0/matrix_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_5_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_6_grad/Reshape"
  input: "filter_type_0/matrix_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_1_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_1_grad/Reshape"
  input: "filter_type_1/matrix_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_5_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_6_grad/Reshape"
  input: "filter_type_1/matrix_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/AddN_8"
  op: "AddN"
  input: "gradients/filter_type_0/concat_grad/Slice"
  input: "gradients/filter_type_0/concat_grad/Slice_1"
  input: "gradients/filter_type_0/MatMul_1_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_0/concat_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_2_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_8"
  input: "gradients/filter_type_0/Reshape_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_9"
  op: "AddN"
  input: "gradients/filter_type_0/concat_1_grad/Slice"
  input: "gradients/filter_type_0/concat_1_grad/Slice_1"
  input: "gradients/filter_type_0/MatMul_5_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_0/concat_1_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_9_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_9"
  input: "gradients/filter_type_0/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_10"
  op: "AddN"
  input: "gradients/filter_type_1/concat_grad/Slice"
  input: "gradients/filter_type_1/concat_grad/Slice_1"
  input: "gradients/filter_type_1/MatMul_1_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_1/concat_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_2_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_10"
  input: "gradients/filter_type_1/Reshape_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_11"
  op: "AddN"
  input: "gradients/filter_type_1/concat_1_grad/Slice"
  input: "gradients/filter_type_1/concat_1_grad/Slice_1"
  input: "gradients/filter_type_1/MatMul_5_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_1/concat_1_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_9_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_11"
  input: "gradients/filter_type_1/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh"
  input: "gradients/filter_type_0/Reshape_2_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/Tanh_3_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_3"
  input: "gradients/filter_type_0/Reshape_9_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh"
  input: "gradients/filter_type_1/Reshape_2_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Tanh_3_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_3"
  input: "gradients/filter_type_1/Reshape_9_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/add_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_grad/Shape"
  input: "gradients/filter_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_grad/TanhGrad"
  input: "gradients/filter_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_grad/Sum"
  input: "gradients/filter_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_5_grad/Shape"
  input: "gradients/filter_type_0/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_5_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_3_grad/TanhGrad"
  input: "gradients/filter_type_0/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_0/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_5_grad/Sum"
  input: "gradients/filter_type_0/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_grad/Shape"
  input: "gradients/filter_type_1/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_grad/TanhGrad"
  input: "gradients/filter_type_1/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_grad/Sum"
  input: "gradients/filter_type_1/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_5_grad/Shape"
  input: "gradients/filter_type_1/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_5_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_3_grad/TanhGrad"
  input: "gradients/filter_type_1/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients/filter_type_1/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_5_grad/Sum"
  input: "gradients/filter_type_1/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_grad/Reshape"
  input: "filter_type_0/matrix_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_0/MatMul_4_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_5_grad/Reshape"
  input: "filter_type_0/matrix_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_grad/Reshape"
  input: "filter_type_1/matrix_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_1/MatMul_4_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_5_grad/Reshape"
  input: "filter_type_1/matrix_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_1_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_grad/MatMul"
  input: "gradients/filter_type_0/Reshape_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_4_grad/MatMul"
  input: "gradients/filter_type_0/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_1_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_grad/MatMul"
  input: "gradients/filter_type_1/Reshape_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_4_grad/MatMul"
  input: "gradients/filter_type_1/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_0/Slice_1_grad/Rank"
  input: "gradients/filter_type_0/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_1/begin"
  input: "gradients/filter_type_0/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_1_grad/Shape_1"
  input: "gradients/filter_type_0/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_1_grad/sub"
  input: "filter_type_0/Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/Slice_1_grad/sub_1"
  input: "gradients/filter_type_0/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_0/Slice_1_grad/Reshape"
  input: "gradients/filter_type_0/Slice_1_grad/Reshape_1"
  input: "gradients/filter_type_0/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_0/Reshape_1_grad/Reshape"
  input: "gradients/filter_type_0/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_0/Slice_3_grad/Rank"
  input: "gradients/filter_type_0/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_3/begin"
  input: "gradients/filter_type_0/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_3_grad/Shape_1"
  input: "gradients/filter_type_0/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_3_grad/sub"
  input: "filter_type_0/Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/Slice_3_grad/sub_1"
  input: "gradients/filter_type_0/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_0/Slice_3_grad/Reshape"
  input: "gradients/filter_type_0/Slice_3_grad/Reshape_1"
  input: "gradients/filter_type_0/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_0/Reshape_8_grad/Reshape"
  input: "gradients/filter_type_0/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_1/Slice_1_grad/Rank"
  input: "gradients/filter_type_1/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_1/begin"
  input: "gradients/filter_type_1/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_1_grad/Shape_1"
  input: "gradients/filter_type_1/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_1_grad/sub"
  input: "filter_type_1/Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/Slice_1_grad/sub_1"
  input: "gradients/filter_type_1/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_1/Slice_1_grad/Reshape"
  input: "gradients/filter_type_1/Slice_1_grad/Reshape_1"
  input: "gradients/filter_type_1/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_1/Reshape_1_grad/Reshape"
  input: "gradients/filter_type_1/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_1/Slice_3_grad/Rank"
  input: "gradients/filter_type_1/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_3/begin"
  input: "gradients/filter_type_1/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_3_grad/Shape_1"
  input: "gradients/filter_type_1/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_3_grad/sub"
  input: "filter_type_1/Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/Slice_3_grad/sub_1"
  input: "gradients/filter_type_1/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_1/Slice_3_grad/Reshape"
  input: "gradients/filter_type_1/Slice_3_grad/Reshape_1"
  input: "gradients/filter_type_1/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_1/Reshape_8_grad/Reshape"
  input: "gradients/filter_type_1/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/Slice_1_grad/Pad"
  input: "gradients/filter_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/Slice_3_grad/Pad"
  input: "gradients/filter_type_0/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/Slice_1_grad/Pad"
  input: "gradients/filter_type_1/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/Slice_3_grad/Pad"
  input: "gradients/filter_type_1/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_12"
  op: "AddN"
  input: "gradients/filter_type_0/Reshape_6_grad/Reshape"
  input: "gradients/filter_type_0/Reshape_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_0/Reshape_6_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_0/Slice_grad/Rank"
  input: "gradients/filter_type_0/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice/begin"
  input: "gradients/filter_type_0/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_grad/Shape_1"
  input: "gradients/filter_type_0/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_grad/sub"
  input: "filter_type_0/Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/Slice_grad/sub_1"
  input: "gradients/filter_type_0/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_0/Slice_grad/Reshape"
  input: "gradients/filter_type_0/Slice_grad/Reshape_1"
  input: "gradients/filter_type_0/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/Pad"
  op: "Pad"
  input: "gradients/AddN_12"
  input: "gradients/filter_type_0/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_13"
  op: "AddN"
  input: "gradients/filter_type_0/Reshape_13_grad/Reshape"
  input: "gradients/filter_type_0/Reshape_7_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_0/Reshape_13_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_0/Slice_2_grad/Rank"
  input: "gradients/filter_type_0/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_2/begin"
  input: "gradients/filter_type_0/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_2_grad/Shape_1"
  input: "gradients/filter_type_0/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_0/Slice_2_grad/sub"
  input: "filter_type_0/Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/Slice_2_grad/sub_1"
  input: "gradients/filter_type_0/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_0/Slice_2_grad/Reshape"
  input: "gradients/filter_type_0/Slice_2_grad/Reshape_1"
  input: "gradients/filter_type_0/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients/AddN_13"
  input: "gradients/filter_type_0/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_14"
  op: "AddN"
  input: "gradients/filter_type_1/Reshape_6_grad/Reshape"
  input: "gradients/filter_type_1/Reshape_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_1/Reshape_6_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_1/Slice_grad/Rank"
  input: "gradients/filter_type_1/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice/begin"
  input: "gradients/filter_type_1/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_grad/Shape_1"
  input: "gradients/filter_type_1/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_grad/sub"
  input: "filter_type_1/Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/Slice_grad/sub_1"
  input: "gradients/filter_type_1/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_1/Slice_grad/Reshape"
  input: "gradients/filter_type_1/Slice_grad/Reshape_1"
  input: "gradients/filter_type_1/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/Pad"
  op: "Pad"
  input: "gradients/AddN_14"
  input: "gradients/filter_type_1/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_15"
  op: "AddN"
  input: "gradients/filter_type_1/Reshape_13_grad/Reshape"
  input: "gradients/filter_type_1/Reshape_7_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_1/Reshape_13_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients/filter_type_1/Slice_2_grad/Rank"
  input: "gradients/filter_type_1/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_2/begin"
  input: "gradients/filter_type_1/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_2_grad/Shape_1"
  input: "gradients/filter_type_1/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients/filter_type_1/Slice_2_grad/sub"
  input: "filter_type_1/Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/Slice_2_grad/sub_1"
  input: "gradients/filter_type_1/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients/filter_type_1/Slice_2_grad/Reshape"
  input: "gradients/filter_type_1/Slice_2_grad/Reshape_1"
  input: "gradients/filter_type_1/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients/AddN_15"
  input: "gradients/filter_type_1/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_16"
  op: "AddN"
  input: "gradients/filter_type_0/Slice_grad/Pad"
  input: "gradients/filter_type_0/Slice_2_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_0/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients/Reshape_5_grad/Shape"
  op: "Shape"
  input: "Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_16"
  input: "gradients/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_17"
  op: "AddN"
  input: "gradients/filter_type_1/Slice_grad/Pad"
  input: "gradients/filter_type_1/Slice_2_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/filter_type_1/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients/Reshape_9_grad/Shape"
  op: "Shape"
  input: "Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_17"
  input: "gradients/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/Slice_grad/Shape"
  op: "Shape"
  input: "Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/Slice_grad/stack"
  op: "Pack"
  input: "gradients/Slice_grad/Rank"
  input: "gradients/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/Slice_grad/Reshape"
  op: "Reshape"
  input: "Slice/begin"
  input: "gradients/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/sub"
  op: "Sub"
  input: "gradients/Slice_grad/Shape_1"
  input: "gradients/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients/Slice_grad/sub"
  input: "Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/Slice_grad/sub_1"
  input: "gradients/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients/Slice_grad/Reshape"
  input: "gradients/Slice_grad/Reshape_1"
  input: "gradients/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/Pad"
  op: "Pad"
  input: "gradients/Reshape_5_grad/Reshape"
  input: "gradients/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients/Slice_1_grad/Shape"
  op: "Shape"
  input: "Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients/Slice_1_grad/Rank"
  input: "gradients/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "Slice_1/begin"
  input: "gradients/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients/Slice_1_grad/Shape_1"
  input: "gradients/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients/Slice_1_grad/sub"
  input: "Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/Slice_1_grad/sub_1"
  input: "gradients/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients/Slice_1_grad/Reshape"
  input: "gradients/Slice_1_grad/Reshape_1"
  input: "gradients/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients/Reshape_9_grad/Reshape"
  input: "gradients/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_18"
  op: "AddN"
  input: "gradients/Slice_grad/Pad"
  input: "gradients/Slice_1_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients/Reshape_4_grad/Shape"
  op: "Shape"
  input: "o_rmat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_18"
  input: "gradients/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_32/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_32/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_32/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_32"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_32/stack"
  input: "strided_slice_32/stack_1"
  input: "strided_slice_32/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_21/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 552
      }
    }
  }
}
node {
  name: "mul_21"
  op: "Mul"
  input: "strided_slice_32"
  input: "mul_21/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_23/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_23/shape"
  op: "Pack"
  input: "Reshape_23/shape/0"
  input: "mul_21"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_23"
  op: "Reshape"
  input: "gradients/Reshape_4_grad/Reshape"
  input: "Reshape_23/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "ProdForceSeA"
  op: "ProdForceSeA"
  input: "Reshape_23"
  input: "o_rmat_deriv"
  input: "o_nlist"
  input: "t_natoms"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "n_a_sel"
    value {
      i: 138
    }
  }
  attr {
    key: "n_r_sel"
    value {
      i: 0
    }
  }
}
node {
  name: "ProdVirialSeA"
  op: "ProdVirialSeA"
  input: "Reshape_23"
  input: "o_rmat_deriv"
  input: "o_rij"
  input: "o_nlist"
  input: "t_natoms"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "n_a_sel"
    value {
      i: 138
    }
  }
  attr {
    key: "n_r_sel"
    value {
      i: 0
    }
  }
}
node {
  name: "strided_slice_33/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_33/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_33/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_33"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_33/stack"
  input: "strided_slice_33/stack_1"
  input: "strided_slice_33/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_22/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "mul_22"
  op: "Mul"
  input: "mul_22/x"
  input: "strided_slice_33"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_24/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_24/shape"
  op: "Pack"
  input: "Reshape_24/shape/0"
  input: "mul_22"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_24"
  op: "Reshape"
  input: "ProdForceSeA"
  input: "Reshape_24/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_25/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\t\000\000\000"
      }
    }
  }
}
node {
  name: "Reshape_25"
  op: "Reshape"
  input: "ProdVirialSeA"
  input: "Reshape_25/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_34/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_34/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_34/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_34"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_34/stack"
  input: "strided_slice_34/stack_1"
  input: "strided_slice_34/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_23/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 9
      }
    }
  }
}
node {
  name: "mul_23"
  op: "Mul"
  input: "mul_23/x"
  input: "strided_slice_34"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_26/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_26/shape"
  op: "Pack"
  input: "Reshape_26/shape/0"
  input: "mul_23"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_26"
  op: "Reshape"
  input: "ProdVirialSeA:1"
  input: "Reshape_26/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Shape"
  op: "Shape"
  input: "split:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/grad_ys_0/Const"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
        }
        double_val: 1.0
      }
    }
  }
}
node {
  name: "gradients_1/grad_ys_0"
  op: "Fill"
  input: "gradients_1/Shape"
  input: "gradients_1/grad_ys_0/Const"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "index_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/zeros_like"
  op: "ZerosLike"
  input: "split"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/zeros_like_1"
  op: "ZerosLike"
  input: "split:2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/split_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/zeros_like"
  input: "gradients_1/grad_ys_0"
  input: "gradients_1/zeros_like_1"
  input: "split/split_dim"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_22_grad/Shape"
  op: "Shape"
  input: "o_dipole"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_22_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/split_grad/concat"
  input: "gradients_1/Reshape_22_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/o_dipole_grad/Shape"
  op: "Shape"
  input: "Reshape_21"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/o_dipole_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/Reshape_22_grad/Reshape"
  input: "gradients_1/o_dipole_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_21_grad/Shape"
  op: "Shape"
  input: "Reshape_18"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_21_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/o_dipole_grad/Reshape"
  input: "gradients_1/Reshape_21_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_18_grad/Shape"
  op: "Shape"
  input: "MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_18_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/Reshape_21_grad/Reshape"
  input: "gradients_1/Reshape_18_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/MatMul"
  op: "BatchMatMulV2"
  input: "gradients_1/Reshape_18_grad/Reshape"
  input: "Reshape_16"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "Reshape_17"
  input: "gradients_1/Reshape_18_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/Shape"
  op: "Shape"
  input: "Reshape_17"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/Shape_1"
  op: "Shape"
  input: "Reshape_16"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_1/MatMul_grad/Shape"
  input: "gradients_1/MatMul_grad/strided_slice/stack"
  input: "gradients_1/MatMul_grad/strided_slice/stack_1"
  input: "gradients_1/MatMul_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_1/MatMul_grad/Shape_1"
  input: "gradients_1/MatMul_grad/strided_slice_1/stack"
  input: "gradients_1/MatMul_grad/strided_slice_1/stack_1"
  input: "gradients_1/MatMul_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/MatMul_grad/strided_slice"
  input: "gradients_1/MatMul_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/Sum"
  op: "Sum"
  input: "gradients_1/MatMul_grad/MatMul"
  input: "gradients_1/MatMul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/MatMul_grad/Sum"
  input: "gradients_1/MatMul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/MatMul_grad/MatMul_1"
  input: "gradients_1/MatMul_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/MatMul_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/MatMul_grad/Sum_1"
  input: "gradients_1/MatMul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_17_grad/Shape"
  op: "Shape"
  input: "final_layer_type_0/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_17_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/MatMul_grad/Reshape"
  input: "gradients_1/Reshape_17_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_16_grad/Shape"
  op: "Shape"
  input: "Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_16_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/MatMul_grad/Reshape_1"
  input: "gradients_1/Reshape_16_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/final_layer_type_0/add_grad/Shape"
  op: "Shape"
  input: "final_layer_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/final_layer_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "final_layer_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/final_layer_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/final_layer_type_0/add_grad/Shape"
  input: "gradients_1/final_layer_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/final_layer_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_1/Reshape_17_grad/Reshape"
  input: "gradients_1/final_layer_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/final_layer_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/final_layer_type_0/add_grad/Sum"
  input: "gradients_1/final_layer_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/Shape"
  op: "Shape"
  input: "Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients_1/Slice_3_grad/Rank"
  input: "gradients_1/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "Slice_3/begin"
  input: "gradients_1/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients_1/Slice_3_grad/Shape_1"
  input: "gradients_1/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients_1/Slice_3_grad/sub"
  input: "Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/Slice_3_grad/sub_1"
  input: "gradients_1/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/Slice_3_grad/Reshape"
  input: "gradients_1/Slice_3_grad/Reshape_1"
  input: "gradients_1/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients_1/Reshape_16_grad/Reshape"
  input: "gradients_1/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/final_layer_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/final_layer_type_0/add_grad/Reshape"
  input: "final_layer_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/Reshape_14_grad/Shape"
  op: "Shape"
  input: "o_rot_mat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/Slice_3_grad/Pad"
  input: "gradients_1/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_5_grad/Shape"
  op: "Shape"
  input: "add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_5_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/add_5_grad/Shape"
  input: "gradients_1/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_5_grad/Sum"
  op: "Sum"
  input: "gradients_1/final_layer_type_0/MatMul_grad/MatMul"
  input: "gradients_1/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/add_5_grad/Sum"
  input: "gradients_1/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_5_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/final_layer_type_0/MatMul_grad/MatMul"
  input: "gradients_1/add_5_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/add_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/add_5_grad/Sum_1"
  input: "gradients_1/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/mul_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/layer_2_type_0/mul_grad/Shape"
  input: "gradients_1/layer_2_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients_1/add_5_grad/Reshape_1"
  input: "layer_2_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients_1/layer_2_type_0/mul_grad/Mul"
  input: "gradients_1/layer_2_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/layer_2_type_0/mul_grad/Sum"
  input: "gradients_1/layer_2_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/concat_1_grad/mod"
  op: "FloorMod"
  input: "concat_1/axis"
  input: "gradients_1/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "Reshape_8"
  input: "Reshape_12"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_1/concat_1_grad/mod"
  input: "gradients_1/concat_1_grad/ShapeN"
  input: "gradients_1/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_1/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients_1/Reshape_14_grad/Reshape"
  input: "gradients_1/concat_1_grad/ConcatOffset"
  input: "gradients_1/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients_1/Reshape_14_grad/Reshape"
  input: "gradients_1/concat_1_grad/ConcatOffset:1"
  input: "gradients_1/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/layer_2_type_0/mul_grad/Reshape"
  input: "gradients_1/layer_2_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/transpose"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/concat_1_grad/Slice"
  input: "gradients_1/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_1/transpose"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/concat_1_grad/Slice_1"
  input: "gradients_1/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_2_type_0/Tanh"
  input: "gradients_1/layer_2_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/transpose_grad/InvertPermutation"
  op: "InvertPermutation"
  input: "filter_type_0/transpose/perm"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/transpose_grad/transpose"
  op: "Transpose"
  input: "gradients_1/Reshape_8_grad/Reshape"
  input: "gradients_1/filter_type_0/transpose_grad/InvertPermutation"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tperm"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/transpose_grad/InvertPermutation"
  op: "InvertPermutation"
  input: "filter_type_1/transpose/perm"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/transpose_grad/transpose"
  op: "Transpose"
  input: "gradients_1/Reshape_12_grad/Reshape"
  input: "gradients_1/filter_type_1/transpose_grad/InvertPermutation"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tperm"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/layer_2_type_0/add_grad/Shape"
  input: "gradients_1/layer_2_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_1/layer_2_type_0/Tanh_grad/TanhGrad"
  input: "gradients_1/layer_2_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/layer_2_type_0/add_grad/Sum"
  input: "gradients_1/layer_2_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_0/Slice_5_grad/Rank"
  input: "gradients_1/filter_type_0/Slice_5_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_5/begin"
  input: "gradients_1/filter_type_0/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_5_grad/Shape_1"
  input: "gradients_1/filter_type_0/Slice_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_5_grad/sub"
  input: "filter_type_0/Slice_5/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/Slice_5_grad/sub_1"
  input: "gradients_1/filter_type_0/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_0/Slice_5_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_5_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Slice_5_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_5_grad/Pad"
  op: "Pad"
  input: "gradients_1/filter_type_0/transpose_grad/transpose"
  input: "gradients_1/filter_type_0/Slice_5_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_1/Slice_5_grad/Rank"
  input: "gradients_1/filter_type_1/Slice_5_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_5/begin"
  input: "gradients_1/filter_type_1/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_5_grad/Shape_1"
  input: "gradients_1/filter_type_1/Slice_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_5_grad/sub"
  input: "filter_type_1/Slice_5/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/Slice_5_grad/sub_1"
  input: "gradients_1/filter_type_1/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_1/Slice_5_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_5_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Slice_5_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_5_grad/Pad"
  op: "Pad"
  input: "gradients_1/filter_type_1/transpose_grad/transpose"
  input: "gradients_1/filter_type_1/Slice_5_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_2_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/layer_2_type_0/add_grad/Reshape"
  input: "layer_2_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/AddN"
  op: "AddN"
  input: "gradients_1/add_5_grad/Reshape"
  input: "gradients_1/layer_2_type_0/MatMul_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/add_5_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/add_4_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_4_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/add_4_grad/Shape"
  input: "gradients_1/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_4_grad/Sum"
  op: "Sum"
  input: "gradients_1/AddN"
  input: "gradients_1/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/add_4_grad/Sum"
  input: "gradients_1/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/AddN"
  input: "gradients_1/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/add_4_grad/Sum_1"
  input: "gradients_1/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/mul_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/layer_1_type_0/mul_grad/Shape"
  input: "gradients_1/layer_1_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients_1/add_4_grad/Reshape_1"
  input: "layer_1_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients_1/layer_1_type_0/mul_grad/Mul"
  input: "gradients_1/layer_1_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/layer_1_type_0/mul_grad/Sum"
  input: "gradients_1/layer_1_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/layer_1_type_0/mul_grad/Reshape"
  input: "gradients_1/layer_1_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_1_type_0/Tanh"
  input: "gradients_1/layer_1_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/layer_1_type_0/add_grad/Shape"
  input: "gradients_1/layer_1_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_1/layer_1_type_0/Tanh_grad/TanhGrad"
  input: "gradients_1/layer_1_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/layer_1_type_0/add_grad/Sum"
  input: "gradients_1/layer_1_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_1_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/layer_1_type_0/add_grad/Reshape"
  input: "layer_1_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/AddN_1"
  op: "AddN"
  input: "gradients_1/add_4_grad/Reshape"
  input: "gradients_1/layer_1_type_0/MatMul_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/AddN_1"
  input: "gradients_1/layer_0_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_0_type_0/Tanh"
  input: "gradients_1/layer_0_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_0_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/layer_0_type_0/add_grad/Shape"
  input: "gradients_1/layer_0_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_1/layer_0_type_0/Tanh_grad/TanhGrad"
  input: "gradients_1/layer_0_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/layer_0_type_0/add_grad/Sum"
  input: "gradients_1/layer_0_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/layer_0_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/layer_0_type_0/add_grad/Reshape"
  input: "layer_0_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/Reshape_15_grad/Shape"
  op: "Shape"
  input: "Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_15_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/layer_0_type_0/MatMul_grad/MatMul"
  input: "gradients_1/Reshape_15_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/Shape"
  op: "Shape"
  input: "Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients_1/Slice_2_grad/Rank"
  input: "gradients_1/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "Slice_2/begin"
  input: "gradients_1/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients_1/Slice_2_grad/Shape_1"
  input: "gradients_1/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients_1/Slice_2_grad/sub"
  input: "Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/Slice_2_grad/sub_1"
  input: "gradients_1/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/Slice_2_grad/Reshape"
  input: "gradients_1/Slice_2_grad/Reshape_1"
  input: "gradients_1/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients_1/Reshape_15_grad/Reshape"
  input: "gradients_1/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_13_grad/Shape"
  op: "Shape"
  input: "o_descriptor"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/Slice_2_grad/Pad"
  input: "gradients_1/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/concat_grad/mod"
  op: "FloorMod"
  input: "concat/axis"
  input: "gradients_1/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/concat_grad/ShapeN"
  op: "ShapeN"
  input: "Reshape_7"
  input: "Reshape_11"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_1/concat_grad/mod"
  input: "gradients_1/concat_grad/ShapeN"
  input: "gradients_1/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_1/concat_grad/Slice"
  op: "Slice"
  input: "gradients_1/Reshape_13_grad/Reshape"
  input: "gradients_1/concat_grad/ConcatOffset"
  input: "gradients_1/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients_1/Reshape_13_grad/Reshape"
  input: "gradients_1/concat_grad/ConcatOffset:1"
  input: "gradients_1/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/concat_grad/Slice"
  input: "gradients_1/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/concat_grad/Slice_1"
  input: "gradients_1/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_14_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_8"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/Reshape_7_grad/Reshape"
  input: "gradients_1/filter_type_0/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_14_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_8"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/Reshape_11_grad/Reshape"
  input: "gradients_1/filter_type_1/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Slice_4"
  input: "gradients_1/filter_type_0/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/mul"
  input: "gradients_1/filter_type_0/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_1/filter_type_0/MatMul_8_grad/Shape"
  input: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice/stack"
  input: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice/stack_1"
  input: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_1/filter_type_0/MatMul_8_grad/Shape_1"
  input: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice_1/stack"
  input: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice_1/stack_1"
  input: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice"
  input: "gradients_1/filter_type_0/MatMul_8_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/MatMul_8_grad/MatMul"
  input: "gradients_1/filter_type_0/MatMul_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_8_grad/Sum"
  input: "gradients_1/filter_type_0/MatMul_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_0/MatMul_8_grad/MatMul_1"
  input: "gradients_1/filter_type_0/MatMul_8_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_8_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_8_grad/Sum_1"
  input: "gradients_1/filter_type_0/MatMul_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Slice_4"
  input: "gradients_1/filter_type_1/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/mul"
  input: "gradients_1/filter_type_1/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_1/filter_type_1/MatMul_8_grad/Shape"
  input: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice/stack"
  input: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice/stack_1"
  input: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_1/filter_type_1/MatMul_8_grad/Shape_1"
  input: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice_1/stack"
  input: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice_1/stack_1"
  input: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice"
  input: "gradients_1/filter_type_1/MatMul_8_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/MatMul_8_grad/MatMul"
  input: "gradients_1/filter_type_1/MatMul_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_8_grad/Sum"
  input: "gradients_1/filter_type_1/MatMul_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_1/MatMul_8_grad/MatMul_1"
  input: "gradients_1/filter_type_1/MatMul_8_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_8_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_8_grad/Sum_1"
  input: "gradients_1/filter_type_1/MatMul_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_0/Slice_4_grad/Rank"
  input: "gradients_1/filter_type_0/Slice_4_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_4/begin"
  input: "gradients_1/filter_type_0/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_4_grad/Shape_1"
  input: "gradients_1/filter_type_0/Slice_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_4_grad/sub"
  input: "filter_type_0/Slice_4/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/Slice_4_grad/sub_1"
  input: "gradients_1/filter_type_0/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_0/Slice_4_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_4_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Slice_4_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_4_grad/Pad"
  op: "Pad"
  input: "gradients_1/filter_type_0/MatMul_8_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Slice_4_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_1/Slice_4_grad/Rank"
  input: "gradients_1/filter_type_1/Slice_4_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_4/begin"
  input: "gradients_1/filter_type_1/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_4_grad/Shape_1"
  input: "gradients_1/filter_type_1/Slice_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_4_grad/sub"
  input: "filter_type_1/Slice_4/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/Slice_4_grad/sub_1"
  input: "gradients_1/filter_type_1/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_1/Slice_4_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_4_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Slice_4_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_4_grad/Pad"
  op: "Pad"
  input: "gradients_1/filter_type_1/MatMul_8_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Slice_4_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_2"
  op: "AddN"
  input: "gradients_1/filter_type_0/Slice_5_grad/Pad"
  input: "gradients_1/filter_type_0/MatMul_8_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_4_grad/Pad"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_0/Slice_5_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/mul_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/mul_grad/Shape"
  input: "gradients_1/filter_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients_1/AddN_2"
  input: "filter_type_0/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/mul_grad/Mul"
  input: "gradients_1/filter_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/mul_grad/Sum"
  input: "gradients_1/filter_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_3"
  op: "AddN"
  input: "gradients_1/filter_type_1/Slice_5_grad/Pad"
  input: "gradients_1/filter_type_1/MatMul_8_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_4_grad/Pad"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_1/Slice_5_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/mul_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/mul_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/mul_grad/Shape"
  input: "gradients_1/filter_type_1/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/mul_grad/Mul"
  op: "Mul"
  input: "gradients_1/AddN_3"
  input: "filter_type_1/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/mul_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/mul_grad/Mul"
  input: "gradients_1/filter_type_1/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/mul_grad/Sum"
  input: "gradients_1/filter_type_1/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_10_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_10_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_10_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_10_grad/Shape"
  input: "gradients_1/filter_type_0/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_10_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/mul_grad/Reshape"
  input: "gradients_1/filter_type_0/add_10_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_10_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_10_grad/Sum"
  input: "gradients_1/filter_type_0/add_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_10_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_0/mul_grad/Reshape"
  input: "gradients_1/filter_type_0/add_10_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_10_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_10_grad/Sum_1"
  input: "gradients_1/filter_type_0/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_10_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_10_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_10_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_10_grad/Shape"
  input: "gradients_1/filter_type_1/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_10_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/mul_grad/Reshape"
  input: "gradients_1/filter_type_1/add_10_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_10_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_10_grad/Sum"
  input: "gradients_1/filter_type_1/add_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_10_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_1/mul_grad/Reshape"
  input: "gradients_1/filter_type_1/add_10_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_10_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_10_grad/Sum_1"
  input: "gradients_1/filter_type_1/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_5"
  input: "gradients_1/filter_type_0/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_6"
  input: "gradients_1/filter_type_0/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_1/filter_type_0/MatMul_3_grad/Shape"
  input: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice/stack"
  input: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice/stack_1"
  input: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_1/filter_type_0/MatMul_3_grad/Shape_1"
  input: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice_1/stack"
  input: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice_1/stack_1"
  input: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice"
  input: "gradients_1/filter_type_0/MatMul_3_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/MatMul_3_grad/MatMul"
  input: "gradients_1/filter_type_0/MatMul_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_3_grad/Sum"
  input: "gradients_1/filter_type_0/MatMul_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_0/MatMul_3_grad/MatMul_1"
  input: "gradients_1/filter_type_0/MatMul_3_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_3_grad/Sum_1"
  input: "gradients_1/filter_type_0/MatMul_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_12"
  input: "gradients_1/filter_type_0/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_13"
  input: "gradients_1/filter_type_0/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_12"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_1/filter_type_0/MatMul_7_grad/Shape"
  input: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice/stack"
  input: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice/stack_1"
  input: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_1/filter_type_0/MatMul_7_grad/Shape_1"
  input: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice_1/stack"
  input: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice_1/stack_1"
  input: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice"
  input: "gradients_1/filter_type_0/MatMul_7_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/MatMul_7_grad/MatMul"
  input: "gradients_1/filter_type_0/MatMul_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_7_grad/Sum"
  input: "gradients_1/filter_type_0/MatMul_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_0/MatMul_7_grad/MatMul_1"
  input: "gradients_1/filter_type_0/MatMul_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_7_grad/Sum_1"
  input: "gradients_1/filter_type_0/MatMul_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_5"
  input: "gradients_1/filter_type_1/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_6"
  input: "gradients_1/filter_type_1/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_1/filter_type_1/MatMul_3_grad/Shape"
  input: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice/stack"
  input: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice/stack_1"
  input: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_1/filter_type_1/MatMul_3_grad/Shape_1"
  input: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice_1/stack"
  input: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice_1/stack_1"
  input: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice"
  input: "gradients_1/filter_type_1/MatMul_3_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/MatMul_3_grad/MatMul"
  input: "gradients_1/filter_type_1/MatMul_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_3_grad/Sum"
  input: "gradients_1/filter_type_1/MatMul_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_1/MatMul_3_grad/MatMul_1"
  input: "gradients_1/filter_type_1/MatMul_3_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_3_grad/Sum_1"
  input: "gradients_1/filter_type_1/MatMul_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_12"
  input: "gradients_1/filter_type_1/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_13"
  input: "gradients_1/filter_type_1/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_12"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_1/filter_type_1/MatMul_7_grad/Shape"
  input: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice/stack"
  input: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice/stack_1"
  input: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_1/filter_type_1/MatMul_7_grad/Shape_1"
  input: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice_1/stack"
  input: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice_1/stack_1"
  input: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice"
  input: "gradients_1/filter_type_1/MatMul_7_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/MatMul_7_grad/MatMul"
  input: "gradients_1/filter_type_1/MatMul_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_7_grad/Sum"
  input: "gradients_1/filter_type_1/MatMul_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_1/MatMul_7_grad/MatMul_1"
  input: "gradients_1/filter_type_1/MatMul_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_7_grad/Sum_1"
  input: "gradients_1/filter_type_1/MatMul_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_6_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_6_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_3_grad/Reshape"
  input: "gradients_1/filter_type_0/Reshape_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_3_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_13_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_7_grad/Reshape"
  input: "gradients_1/filter_type_0/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_7_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_6_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_6_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_3_grad/Reshape"
  input: "gradients_1/filter_type_1/Reshape_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_3_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_13_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_7_grad/Reshape"
  input: "gradients_1/filter_type_1/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_7_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_4_grad/Shape"
  input: "gradients_1/filter_type_0/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_4_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/Reshape_5_grad/Reshape"
  input: "gradients_1/filter_type_0/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_4_grad/Sum"
  input: "gradients_1/filter_type_0/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_0/Reshape_5_grad/Reshape"
  input: "gradients_1/filter_type_0/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_4_grad/Sum_1"
  input: "gradients_1/filter_type_0/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_9_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_9_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_9_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_9_grad/Shape"
  input: "gradients_1/filter_type_0/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_9_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/Reshape_12_grad/Reshape"
  input: "gradients_1/filter_type_0/add_9_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_9_grad/Sum"
  input: "gradients_1/filter_type_0/add_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_9_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_0/Reshape_12_grad/Reshape"
  input: "gradients_1/filter_type_0/add_9_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_9_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_9_grad/Sum_1"
  input: "gradients_1/filter_type_0/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_4_grad/Shape"
  input: "gradients_1/filter_type_1/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_4_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/Reshape_5_grad/Reshape"
  input: "gradients_1/filter_type_1/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_4_grad/Sum"
  input: "gradients_1/filter_type_1/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_1/Reshape_5_grad/Reshape"
  input: "gradients_1/filter_type_1/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_4_grad/Sum_1"
  input: "gradients_1/filter_type_1/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_9_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_9_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_9_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_9_grad/Shape"
  input: "gradients_1/filter_type_1/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_9_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/Reshape_12_grad/Reshape"
  input: "gradients_1/filter_type_1/add_9_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_9_grad/Sum"
  input: "gradients_1/filter_type_1/add_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_9_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/filter_type_1/Reshape_12_grad/Reshape"
  input: "gradients_1/filter_type_1/add_9_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_9_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_9_grad/Sum_1"
  input: "gradients_1/filter_type_1/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_4_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_9_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_4_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_9_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Tanh_2_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_2"
  input: "gradients_1/filter_type_0/Reshape_4_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Tanh_5_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_5"
  input: "gradients_1/filter_type_0/Reshape_11_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Tanh_2_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_2"
  input: "gradients_1/filter_type_1/Reshape_4_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Tanh_5_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_5"
  input: "gradients_1/filter_type_1/Reshape_11_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_3_grad/Shape"
  input: "gradients_1/filter_type_0/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_3_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/Tanh_2_grad/TanhGrad"
  input: "gradients_1/filter_type_0/add_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_3_grad/Sum"
  input: "gradients_1/filter_type_0/add_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_8_grad/Shape"
  input: "gradients_1/filter_type_0/add_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_8_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/Tanh_5_grad/TanhGrad"
  input: "gradients_1/filter_type_0/add_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_8_grad/Sum"
  input: "gradients_1/filter_type_0/add_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_3_grad/Shape"
  input: "gradients_1/filter_type_1/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_3_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/Tanh_2_grad/TanhGrad"
  input: "gradients_1/filter_type_1/add_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_3_grad/Sum"
  input: "gradients_1/filter_type_1/add_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_8_grad/Shape"
  input: "gradients_1/filter_type_1/add_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_8_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/Tanh_5_grad/TanhGrad"
  input: "gradients_1/filter_type_1/add_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_8_grad/Sum"
  input: "gradients_1/filter_type_1/add_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_2_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_0/add_3_grad/Reshape"
  input: "filter_type_0/matrix_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_6_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_0/add_8_grad/Reshape"
  input: "filter_type_0/matrix_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_2_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_1/add_3_grad/Reshape"
  input: "filter_type_1/matrix_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_6_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_1/add_8_grad/Reshape"
  input: "filter_type_1/matrix_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/AddN_4"
  op: "AddN"
  input: "gradients_1/filter_type_0/add_4_grad/Reshape"
  input: "gradients_1/filter_type_0/MatMul_2_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_0/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_2_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_2_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_2_grad/Shape"
  input: "gradients_1/filter_type_0/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_2_grad/Sum"
  op: "Sum"
  input: "gradients_1/AddN_4"
  input: "gradients_1/filter_type_0/add_2_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_2_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_2_grad/Sum"
  input: "gradients_1/filter_type_0/add_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_2_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/AddN_4"
  input: "gradients_1/filter_type_0/add_2_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_2_grad/Sum_1"
  input: "gradients_1/filter_type_0/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_5"
  op: "AddN"
  input: "gradients_1/filter_type_0/add_9_grad/Reshape"
  input: "gradients_1/filter_type_0/MatMul_6_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_0/add_9_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_7_grad/Shape"
  input: "gradients_1/filter_type_0/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_7_grad/Sum"
  op: "Sum"
  input: "gradients_1/AddN_5"
  input: "gradients_1/filter_type_0/add_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_7_grad/Sum"
  input: "gradients_1/filter_type_0/add_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/AddN_5"
  input: "gradients_1/filter_type_0/add_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_7_grad/Sum_1"
  input: "gradients_1/filter_type_0/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_6"
  op: "AddN"
  input: "gradients_1/filter_type_1/add_4_grad/Reshape"
  input: "gradients_1/filter_type_1/MatMul_2_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_1/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_2_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_2_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_2_grad/Shape"
  input: "gradients_1/filter_type_1/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_2_grad/Sum"
  op: "Sum"
  input: "gradients_1/AddN_6"
  input: "gradients_1/filter_type_1/add_2_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_2_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_2_grad/Sum"
  input: "gradients_1/filter_type_1/add_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_2_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/AddN_6"
  input: "gradients_1/filter_type_1/add_2_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_2_grad/Sum_1"
  input: "gradients_1/filter_type_1/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_7"
  op: "AddN"
  input: "gradients_1/filter_type_1/add_9_grad/Reshape"
  input: "gradients_1/filter_type_1/MatMul_6_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_1/add_9_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_7_grad/Shape"
  input: "gradients_1/filter_type_1/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_7_grad/Sum"
  op: "Sum"
  input: "gradients_1/AddN_7"
  input: "gradients_1/filter_type_1/add_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_7_grad/Sum"
  input: "gradients_1/filter_type_1/add_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients_1/AddN_7"
  input: "gradients_1/filter_type_1/add_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_7_grad/Sum_1"
  input: "gradients_1/filter_type_1/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat/axis"
  input: "gradients_1/filter_type_0/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/Reshape_2"
  input: "filter_type_0/Reshape_2"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_1/filter_type_0/concat_grad/mod"
  input: "gradients_1/filter_type_0/concat_grad/ShapeN"
  input: "gradients_1/filter_type_0/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_grad/Slice"
  op: "Slice"
  input: "gradients_1/filter_type_0/add_2_grad/Reshape"
  input: "gradients_1/filter_type_0/concat_grad/ConcatOffset"
  input: "gradients_1/filter_type_0/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients_1/filter_type_0/add_2_grad/Reshape"
  input: "gradients_1/filter_type_0/concat_grad/ConcatOffset:1"
  input: "gradients_1/filter_type_0/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_2_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Reshape_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_1_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat_1/axis"
  input: "gradients_1/filter_type_0/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/Reshape_9"
  input: "filter_type_0/Reshape_9"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_1/filter_type_0/concat_1_grad/mod"
  input: "gradients_1/filter_type_0/concat_1_grad/ShapeN"
  input: "gradients_1/filter_type_0/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients_1/filter_type_0/add_7_grad/Reshape"
  input: "gradients_1/filter_type_0/concat_1_grad/ConcatOffset"
  input: "gradients_1/filter_type_0/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients_1/filter_type_0/add_7_grad/Reshape"
  input: "gradients_1/filter_type_0/concat_1_grad/ConcatOffset:1"
  input: "gradients_1/filter_type_0/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_10_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_10_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_7_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Reshape_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat/axis"
  input: "gradients_1/filter_type_1/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/Reshape_2"
  input: "filter_type_1/Reshape_2"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_1/filter_type_1/concat_grad/mod"
  input: "gradients_1/filter_type_1/concat_grad/ShapeN"
  input: "gradients_1/filter_type_1/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_grad/Slice"
  op: "Slice"
  input: "gradients_1/filter_type_1/add_2_grad/Reshape"
  input: "gradients_1/filter_type_1/concat_grad/ConcatOffset"
  input: "gradients_1/filter_type_1/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients_1/filter_type_1/add_2_grad/Reshape"
  input: "gradients_1/filter_type_1/concat_grad/ConcatOffset:1"
  input: "gradients_1/filter_type_1/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_2_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Reshape_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_1_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat_1/axis"
  input: "gradients_1/filter_type_1/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/Reshape_9"
  input: "filter_type_1/Reshape_9"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_1/filter_type_1/concat_1_grad/mod"
  input: "gradients_1/filter_type_1/concat_1_grad/ShapeN"
  input: "gradients_1/filter_type_1/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients_1/filter_type_1/add_7_grad/Reshape"
  input: "gradients_1/filter_type_1/concat_1_grad/ConcatOffset"
  input: "gradients_1/filter_type_1/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients_1/filter_type_1/add_7_grad/Reshape"
  input: "gradients_1/filter_type_1/concat_1_grad/ConcatOffset:1"
  input: "gradients_1/filter_type_1/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_10_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_10_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_7_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Reshape_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Tanh_1_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_1"
  input: "gradients_1/filter_type_0/Reshape_3_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Tanh_4_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_4"
  input: "gradients_1/filter_type_0/Reshape_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Tanh_1_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_1"
  input: "gradients_1/filter_type_1/Reshape_3_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Tanh_4_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_4"
  input: "gradients_1/filter_type_1/Reshape_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_1_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_1_grad/Shape"
  input: "gradients_1/filter_type_0/add_1_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_1_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/Tanh_1_grad/TanhGrad"
  input: "gradients_1/filter_type_0/add_1_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_1_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_1_grad/Sum"
  input: "gradients_1/filter_type_0/add_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_6_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_6_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_6_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_6_grad/Shape"
  input: "gradients_1/filter_type_0/add_6_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_6_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/Tanh_4_grad/TanhGrad"
  input: "gradients_1/filter_type_0/add_6_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_6_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_6_grad/Sum"
  input: "gradients_1/filter_type_0/add_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_1_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_1_grad/Shape"
  input: "gradients_1/filter_type_1/add_1_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_1_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/Tanh_1_grad/TanhGrad"
  input: "gradients_1/filter_type_1/add_1_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_1_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_1_grad/Sum"
  input: "gradients_1/filter_type_1/add_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_6_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_6_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_6_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_6_grad/Shape"
  input: "gradients_1/filter_type_1/add_6_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_6_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/Tanh_4_grad/TanhGrad"
  input: "gradients_1/filter_type_1/add_6_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_6_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_6_grad/Sum"
  input: "gradients_1/filter_type_1/add_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_1_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_0/add_1_grad/Reshape"
  input: "filter_type_0/matrix_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_5_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_0/add_6_grad/Reshape"
  input: "filter_type_0/matrix_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_1_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_1/add_1_grad/Reshape"
  input: "filter_type_1/matrix_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_5_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_1/add_6_grad/Reshape"
  input: "filter_type_1/matrix_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/AddN_8"
  op: "AddN"
  input: "gradients_1/filter_type_0/concat_grad/Slice"
  input: "gradients_1/filter_type_0/concat_grad/Slice_1"
  input: "gradients_1/filter_type_0/MatMul_1_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_0/concat_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_2_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/AddN_8"
  input: "gradients_1/filter_type_0/Reshape_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_9"
  op: "AddN"
  input: "gradients_1/filter_type_0/concat_1_grad/Slice"
  input: "gradients_1/filter_type_0/concat_1_grad/Slice_1"
  input: "gradients_1/filter_type_0/MatMul_5_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_0/concat_1_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_9_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/AddN_9"
  input: "gradients_1/filter_type_0/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_10"
  op: "AddN"
  input: "gradients_1/filter_type_1/concat_grad/Slice"
  input: "gradients_1/filter_type_1/concat_grad/Slice_1"
  input: "gradients_1/filter_type_1/MatMul_1_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_1/concat_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_2_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/AddN_10"
  input: "gradients_1/filter_type_1/Reshape_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_11"
  op: "AddN"
  input: "gradients_1/filter_type_1/concat_1_grad/Slice"
  input: "gradients_1/filter_type_1/concat_1_grad/Slice_1"
  input: "gradients_1/filter_type_1/MatMul_5_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_1/concat_1_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_9_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/AddN_11"
  input: "gradients_1/filter_type_1/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh"
  input: "gradients_1/filter_type_0/Reshape_2_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Tanh_3_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_3"
  input: "gradients_1/filter_type_0/Reshape_9_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh"
  input: "gradients_1/filter_type_1/Reshape_2_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Tanh_3_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_3"
  input: "gradients_1/filter_type_1/Reshape_9_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_grad/Shape"
  input: "gradients_1/filter_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/Tanh_grad/TanhGrad"
  input: "gradients_1/filter_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_grad/Sum"
  input: "gradients_1/filter_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_0/add_5_grad/Shape"
  input: "gradients_1/filter_type_0/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_5_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_0/Tanh_3_grad/TanhGrad"
  input: "gradients_1/filter_type_0/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_0/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/add_5_grad/Sum"
  input: "gradients_1/filter_type_0/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_grad/Shape"
  input: "gradients_1/filter_type_1/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/Tanh_grad/TanhGrad"
  input: "gradients_1/filter_type_1/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_grad/Sum"
  input: "gradients_1/filter_type_1/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_1/filter_type_1/add_5_grad/Shape"
  input: "gradients_1/filter_type_1/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_5_grad/Sum"
  op: "Sum"
  input: "gradients_1/filter_type_1/Tanh_3_grad/TanhGrad"
  input: "gradients_1/filter_type_1/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_1/filter_type_1/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/add_5_grad/Sum"
  input: "gradients_1/filter_type_1/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_0/add_grad/Reshape"
  input: "filter_type_0/matrix_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_0/MatMul_4_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_0/add_5_grad/Reshape"
  input: "filter_type_0/matrix_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_1/add_grad/Reshape"
  input: "filter_type_1/matrix_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_1/MatMul_4_grad/MatMul"
  op: "MatMul"
  input: "gradients_1/filter_type_1/add_5_grad/Reshape"
  input: "filter_type_1/matrix_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_1_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_grad/MatMul"
  input: "gradients_1/filter_type_0/Reshape_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/MatMul_4_grad/MatMul"
  input: "gradients_1/filter_type_0/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_1_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_grad/MatMul"
  input: "gradients_1/filter_type_1/Reshape_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/MatMul_4_grad/MatMul"
  input: "gradients_1/filter_type_1/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_0/Slice_1_grad/Rank"
  input: "gradients_1/filter_type_0/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_1/begin"
  input: "gradients_1/filter_type_0/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_1_grad/Shape_1"
  input: "gradients_1/filter_type_0/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_1_grad/sub"
  input: "filter_type_0/Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/Slice_1_grad/sub_1"
  input: "gradients_1/filter_type_0/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_0/Slice_1_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_1_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients_1/filter_type_0/Reshape_1_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_0/Slice_3_grad/Rank"
  input: "gradients_1/filter_type_0/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_3/begin"
  input: "gradients_1/filter_type_0/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_3_grad/Shape_1"
  input: "gradients_1/filter_type_0/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_3_grad/sub"
  input: "filter_type_0/Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/Slice_3_grad/sub_1"
  input: "gradients_1/filter_type_0/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_0/Slice_3_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_3_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients_1/filter_type_0/Reshape_8_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_1/Slice_1_grad/Rank"
  input: "gradients_1/filter_type_1/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_1/begin"
  input: "gradients_1/filter_type_1/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_1_grad/Shape_1"
  input: "gradients_1/filter_type_1/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_1_grad/sub"
  input: "filter_type_1/Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/Slice_1_grad/sub_1"
  input: "gradients_1/filter_type_1/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_1/Slice_1_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_1_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients_1/filter_type_1/Reshape_1_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_1/Slice_3_grad/Rank"
  input: "gradients_1/filter_type_1/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_3/begin"
  input: "gradients_1/filter_type_1/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_3_grad/Shape_1"
  input: "gradients_1/filter_type_1/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_3_grad/sub"
  input: "filter_type_1/Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/Slice_3_grad/sub_1"
  input: "gradients_1/filter_type_1/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_1/Slice_3_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_3_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients_1/filter_type_1/Reshape_8_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/Slice_1_grad/Pad"
  input: "gradients_1/filter_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_0/Slice_3_grad/Pad"
  input: "gradients_1/filter_type_0/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/Slice_1_grad/Pad"
  input: "gradients_1/filter_type_1/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/filter_type_1/Slice_3_grad/Pad"
  input: "gradients_1/filter_type_1/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_12"
  op: "AddN"
  input: "gradients_1/filter_type_0/Reshape_6_grad/Reshape"
  input: "gradients_1/filter_type_0/Reshape_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_0/Reshape_6_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_0/Slice_grad/Rank"
  input: "gradients_1/filter_type_0/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice/begin"
  input: "gradients_1/filter_type_0/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_grad/Shape_1"
  input: "gradients_1/filter_type_0/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_grad/sub"
  input: "filter_type_0/Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/Slice_grad/sub_1"
  input: "gradients_1/filter_type_0/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_0/Slice_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_grad/Pad"
  op: "Pad"
  input: "gradients_1/AddN_12"
  input: "gradients_1/filter_type_0/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_13"
  op: "AddN"
  input: "gradients_1/filter_type_0/Reshape_13_grad/Reshape"
  input: "gradients_1/filter_type_0/Reshape_7_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_0/Reshape_13_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_0/Slice_2_grad/Rank"
  input: "gradients_1/filter_type_0/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_2/begin"
  input: "gradients_1/filter_type_0/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_2_grad/Shape_1"
  input: "gradients_1/filter_type_0/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_0/Slice_2_grad/sub"
  input: "filter_type_0/Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_0/Slice_2_grad/sub_1"
  input: "gradients_1/filter_type_0/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_0/Slice_2_grad/Reshape"
  input: "gradients_1/filter_type_0/Slice_2_grad/Reshape_1"
  input: "gradients_1/filter_type_0/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_0/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients_1/AddN_13"
  input: "gradients_1/filter_type_0/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_14"
  op: "AddN"
  input: "gradients_1/filter_type_1/Reshape_6_grad/Reshape"
  input: "gradients_1/filter_type_1/Reshape_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_1/Reshape_6_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_1/Slice_grad/Rank"
  input: "gradients_1/filter_type_1/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice/begin"
  input: "gradients_1/filter_type_1/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_grad/Shape_1"
  input: "gradients_1/filter_type_1/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_grad/sub"
  input: "filter_type_1/Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/Slice_grad/sub_1"
  input: "gradients_1/filter_type_1/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_1/Slice_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_grad/Pad"
  op: "Pad"
  input: "gradients_1/AddN_14"
  input: "gradients_1/filter_type_1/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_15"
  op: "AddN"
  input: "gradients_1/filter_type_1/Reshape_13_grad/Reshape"
  input: "gradients_1/filter_type_1/Reshape_7_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_1/Reshape_13_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients_1/filter_type_1/Slice_2_grad/Rank"
  input: "gradients_1/filter_type_1/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_2/begin"
  input: "gradients_1/filter_type_1/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_2_grad/Shape_1"
  input: "gradients_1/filter_type_1/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients_1/filter_type_1/Slice_2_grad/sub"
  input: "filter_type_1/Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/filter_type_1/Slice_2_grad/sub_1"
  input: "gradients_1/filter_type_1/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/filter_type_1/Slice_2_grad/Reshape"
  input: "gradients_1/filter_type_1/Slice_2_grad/Reshape_1"
  input: "gradients_1/filter_type_1/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/filter_type_1/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients_1/AddN_15"
  input: "gradients_1/filter_type_1/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_16"
  op: "AddN"
  input: "gradients_1/filter_type_0/Slice_grad/Pad"
  input: "gradients_1/filter_type_0/Slice_2_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_0/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_1/Reshape_5_grad/Shape"
  op: "Shape"
  input: "Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/AddN_16"
  input: "gradients_1/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_17"
  op: "AddN"
  input: "gradients_1/filter_type_1/Slice_grad/Pad"
  input: "gradients_1/filter_type_1/Slice_2_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/filter_type_1/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_1/Reshape_9_grad/Shape"
  op: "Shape"
  input: "Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/AddN_17"
  input: "gradients_1/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/Slice_grad/Shape"
  op: "Shape"
  input: "Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/Slice_grad/stack"
  op: "Pack"
  input: "gradients_1/Slice_grad/Rank"
  input: "gradients_1/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/Slice_grad/Reshape"
  op: "Reshape"
  input: "Slice/begin"
  input: "gradients_1/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_grad/sub"
  op: "Sub"
  input: "gradients_1/Slice_grad/Shape_1"
  input: "gradients_1/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients_1/Slice_grad/sub"
  input: "Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/Slice_grad/sub_1"
  input: "gradients_1/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/Slice_grad/Reshape"
  input: "gradients_1/Slice_grad/Reshape_1"
  input: "gradients_1/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_grad/Pad"
  op: "Pad"
  input: "gradients_1/Reshape_5_grad/Reshape"
  input: "gradients_1/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/Shape"
  op: "Shape"
  input: "Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients_1/Slice_1_grad/Rank"
  input: "gradients_1/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "Slice_1/begin"
  input: "gradients_1/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients_1/Slice_1_grad/Shape_1"
  input: "gradients_1/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients_1/Slice_1_grad/sub"
  input: "Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_1/Slice_1_grad/sub_1"
  input: "gradients_1/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients_1/Slice_1_grad/Reshape"
  input: "gradients_1/Slice_1_grad/Reshape_1"
  input: "gradients_1/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients_1/Reshape_9_grad/Reshape"
  input: "gradients_1/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/AddN_18"
  op: "AddN"
  input: "gradients_1/Slice_grad/Pad"
  input: "gradients_1/Slice_1_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_1/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_1/Reshape_4_grad/Shape"
  op: "Shape"
  input: "o_rmat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_1/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_1/AddN_18"
  input: "gradients_1/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_35/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_35/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_35/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_35"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_35/stack"
  input: "strided_slice_35/stack_1"
  input: "strided_slice_35/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_24/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 552
      }
    }
  }
}
node {
  name: "mul_24"
  op: "Mul"
  input: "strided_slice_35"
  input: "mul_24/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_27/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_27/shape"
  op: "Pack"
  input: "Reshape_27/shape/0"
  input: "mul_24"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_27"
  op: "Reshape"
  input: "gradients_1/Reshape_4_grad/Reshape"
  input: "Reshape_27/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "ProdForceSeA_1"
  op: "ProdForceSeA"
  input: "Reshape_27"
  input: "o_rmat_deriv"
  input: "o_nlist"
  input: "t_natoms"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "n_a_sel"
    value {
      i: 138
    }
  }
  attr {
    key: "n_r_sel"
    value {
      i: 0
    }
  }
}
node {
  name: "ProdVirialSeA_1"
  op: "ProdVirialSeA"
  input: "Reshape_27"
  input: "o_rmat_deriv"
  input: "o_rij"
  input: "o_nlist"
  input: "t_natoms"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "n_a_sel"
    value {
      i: 138
    }
  }
  attr {
    key: "n_r_sel"
    value {
      i: 0
    }
  }
}
node {
  name: "strided_slice_36/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_36/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_36/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_36"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_36/stack"
  input: "strided_slice_36/stack_1"
  input: "strided_slice_36/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_25/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "mul_25"
  op: "Mul"
  input: "mul_25/x"
  input: "strided_slice_36"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_28/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_28/shape"
  op: "Pack"
  input: "Reshape_28/shape/0"
  input: "mul_25"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_28"
  op: "Reshape"
  input: "ProdForceSeA_1"
  input: "Reshape_28/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_29/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\t\000\000\000"
      }
    }
  }
}
node {
  name: "Reshape_29"
  op: "Reshape"
  input: "ProdVirialSeA_1"
  input: "Reshape_29/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_37/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_37/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_37/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_37"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_37/stack"
  input: "strided_slice_37/stack_1"
  input: "strided_slice_37/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_26/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 9
      }
    }
  }
}
node {
  name: "mul_26"
  op: "Mul"
  input: "mul_26/x"
  input: "strided_slice_37"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_30/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_30/shape"
  op: "Pack"
  input: "Reshape_30/shape/0"
  input: "mul_26"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_30"
  op: "Reshape"
  input: "ProdVirialSeA_1:1"
  input: "Reshape_30/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Shape"
  op: "Shape"
  input: "split:2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/grad_ys_0/Const"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
        }
        double_val: 1.0
      }
    }
  }
}
node {
  name: "gradients_2/grad_ys_0"
  op: "Fill"
  input: "gradients_2/Shape"
  input: "gradients_2/grad_ys_0/Const"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "index_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/zeros_like"
  op: "ZerosLike"
  input: "split"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/zeros_like_1"
  op: "ZerosLike"
  input: "split:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/split_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/zeros_like"
  input: "gradients_2/zeros_like_1"
  input: "gradients_2/grad_ys_0"
  input: "split/split_dim"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_22_grad/Shape"
  op: "Shape"
  input: "o_dipole"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_22_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/split_grad/concat"
  input: "gradients_2/Reshape_22_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/o_dipole_grad/Shape"
  op: "Shape"
  input: "Reshape_21"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/o_dipole_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/Reshape_22_grad/Reshape"
  input: "gradients_2/o_dipole_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_21_grad/Shape"
  op: "Shape"
  input: "Reshape_18"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_21_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/o_dipole_grad/Reshape"
  input: "gradients_2/Reshape_21_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_18_grad/Shape"
  op: "Shape"
  input: "MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_18_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/Reshape_21_grad/Reshape"
  input: "gradients_2/Reshape_18_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/MatMul"
  op: "BatchMatMulV2"
  input: "gradients_2/Reshape_18_grad/Reshape"
  input: "Reshape_16"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "Reshape_17"
  input: "gradients_2/Reshape_18_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: true
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/Shape"
  op: "Shape"
  input: "Reshape_17"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/Shape_1"
  op: "Shape"
  input: "Reshape_16"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_2/MatMul_grad/Shape"
  input: "gradients_2/MatMul_grad/strided_slice/stack"
  input: "gradients_2/MatMul_grad/strided_slice/stack_1"
  input: "gradients_2/MatMul_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_2/MatMul_grad/Shape_1"
  input: "gradients_2/MatMul_grad/strided_slice_1/stack"
  input: "gradients_2/MatMul_grad/strided_slice_1/stack_1"
  input: "gradients_2/MatMul_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/MatMul_grad/strided_slice"
  input: "gradients_2/MatMul_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/Sum"
  op: "Sum"
  input: "gradients_2/MatMul_grad/MatMul"
  input: "gradients_2/MatMul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/MatMul_grad/Sum"
  input: "gradients_2/MatMul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/MatMul_grad/MatMul_1"
  input: "gradients_2/MatMul_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/MatMul_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/MatMul_grad/Sum_1"
  input: "gradients_2/MatMul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_17_grad/Shape"
  op: "Shape"
  input: "final_layer_type_0/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_17_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/MatMul_grad/Reshape"
  input: "gradients_2/Reshape_17_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_16_grad/Shape"
  op: "Shape"
  input: "Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_16_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/MatMul_grad/Reshape_1"
  input: "gradients_2/Reshape_16_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/final_layer_type_0/add_grad/Shape"
  op: "Shape"
  input: "final_layer_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/final_layer_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "final_layer_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/final_layer_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/final_layer_type_0/add_grad/Shape"
  input: "gradients_2/final_layer_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/final_layer_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_2/Reshape_17_grad/Reshape"
  input: "gradients_2/final_layer_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/final_layer_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/final_layer_type_0/add_grad/Sum"
  input: "gradients_2/final_layer_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/Shape"
  op: "Shape"
  input: "Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients_2/Slice_3_grad/Rank"
  input: "gradients_2/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "Slice_3/begin"
  input: "gradients_2/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients_2/Slice_3_grad/Shape_1"
  input: "gradients_2/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients_2/Slice_3_grad/sub"
  input: "Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/Slice_3_grad/sub_1"
  input: "gradients_2/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/Slice_3_grad/Reshape"
  input: "gradients_2/Slice_3_grad/Reshape_1"
  input: "gradients_2/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients_2/Reshape_16_grad/Reshape"
  input: "gradients_2/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/final_layer_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/final_layer_type_0/add_grad/Reshape"
  input: "final_layer_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/Reshape_14_grad/Shape"
  op: "Shape"
  input: "o_rot_mat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/Slice_3_grad/Pad"
  input: "gradients_2/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_5_grad/Shape"
  op: "Shape"
  input: "add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_5_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/add_5_grad/Shape"
  input: "gradients_2/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_5_grad/Sum"
  op: "Sum"
  input: "gradients_2/final_layer_type_0/MatMul_grad/MatMul"
  input: "gradients_2/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/add_5_grad/Sum"
  input: "gradients_2/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_5_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/final_layer_type_0/MatMul_grad/MatMul"
  input: "gradients_2/add_5_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/add_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/add_5_grad/Sum_1"
  input: "gradients_2/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/mul_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/layer_2_type_0/mul_grad/Shape"
  input: "gradients_2/layer_2_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients_2/add_5_grad/Reshape_1"
  input: "layer_2_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients_2/layer_2_type_0/mul_grad/Mul"
  input: "gradients_2/layer_2_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/layer_2_type_0/mul_grad/Sum"
  input: "gradients_2/layer_2_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/concat_1_grad/mod"
  op: "FloorMod"
  input: "concat_1/axis"
  input: "gradients_2/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "Reshape_8"
  input: "Reshape_12"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_2/concat_1_grad/mod"
  input: "gradients_2/concat_1_grad/ShapeN"
  input: "gradients_2/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_2/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients_2/Reshape_14_grad/Reshape"
  input: "gradients_2/concat_1_grad/ConcatOffset"
  input: "gradients_2/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients_2/Reshape_14_grad/Reshape"
  input: "gradients_2/concat_1_grad/ConcatOffset:1"
  input: "gradients_2/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/layer_2_type_0/mul_grad/Reshape"
  input: "gradients_2/layer_2_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/transpose"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/concat_1_grad/Slice"
  input: "gradients_2/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_1/transpose"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/concat_1_grad/Slice_1"
  input: "gradients_2/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_2_type_0/Tanh"
  input: "gradients_2/layer_2_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/transpose_grad/InvertPermutation"
  op: "InvertPermutation"
  input: "filter_type_0/transpose/perm"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/transpose_grad/transpose"
  op: "Transpose"
  input: "gradients_2/Reshape_8_grad/Reshape"
  input: "gradients_2/filter_type_0/transpose_grad/InvertPermutation"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tperm"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/transpose_grad/InvertPermutation"
  op: "InvertPermutation"
  input: "filter_type_1/transpose/perm"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/transpose_grad/transpose"
  op: "Transpose"
  input: "gradients_2/Reshape_12_grad/Reshape"
  input: "gradients_2/filter_type_1/transpose_grad/InvertPermutation"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tperm"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_2_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/layer_2_type_0/add_grad/Shape"
  input: "gradients_2/layer_2_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_2/layer_2_type_0/Tanh_grad/TanhGrad"
  input: "gradients_2/layer_2_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/layer_2_type_0/add_grad/Sum"
  input: "gradients_2/layer_2_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_0/Slice_5_grad/Rank"
  input: "gradients_2/filter_type_0/Slice_5_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_5/begin"
  input: "gradients_2/filter_type_0/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_5_grad/Shape_1"
  input: "gradients_2/filter_type_0/Slice_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_5_grad/sub"
  input: "filter_type_0/Slice_5/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/Slice_5_grad/sub_1"
  input: "gradients_2/filter_type_0/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_0/Slice_5_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_5_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Slice_5_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_5_grad/Pad"
  op: "Pad"
  input: "gradients_2/filter_type_0/transpose_grad/transpose"
  input: "gradients_2/filter_type_0/Slice_5_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_1/Slice_5_grad/Rank"
  input: "gradients_2/filter_type_1/Slice_5_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_5/begin"
  input: "gradients_2/filter_type_1/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_5_grad/Shape_1"
  input: "gradients_2/filter_type_1/Slice_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_5_grad/sub"
  input: "filter_type_1/Slice_5/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/Slice_5_grad/sub_1"
  input: "gradients_2/filter_type_1/Slice_5_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_1/Slice_5_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_5_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Slice_5_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_5_grad/Pad"
  op: "Pad"
  input: "gradients_2/filter_type_1/transpose_grad/transpose"
  input: "gradients_2/filter_type_1/Slice_5_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_2_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/layer_2_type_0/add_grad/Reshape"
  input: "layer_2_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/AddN"
  op: "AddN"
  input: "gradients_2/add_5_grad/Reshape"
  input: "gradients_2/layer_2_type_0/MatMul_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/add_5_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/add_4_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_4_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/add_4_grad/Shape"
  input: "gradients_2/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_4_grad/Sum"
  op: "Sum"
  input: "gradients_2/AddN"
  input: "gradients_2/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/add_4_grad/Sum"
  input: "gradients_2/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/AddN"
  input: "gradients_2/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/add_4_grad/Sum_1"
  input: "gradients_2/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/mul_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/layer_1_type_0/mul_grad/Shape"
  input: "gradients_2/layer_1_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients_2/add_4_grad/Reshape_1"
  input: "layer_1_type_0/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients_2/layer_1_type_0/mul_grad/Mul"
  input: "gradients_2/layer_1_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/layer_1_type_0/mul_grad/Sum"
  input: "gradients_2/layer_1_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/layer_1_type_0/mul_grad/Reshape"
  input: "gradients_2/layer_1_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_1_type_0/Tanh"
  input: "gradients_2/layer_1_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_1_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/layer_1_type_0/add_grad/Shape"
  input: "gradients_2/layer_1_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_2/layer_1_type_0/Tanh_grad/TanhGrad"
  input: "gradients_2/layer_1_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/layer_1_type_0/add_grad/Sum"
  input: "gradients_2/layer_1_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_1_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/layer_1_type_0/add_grad/Reshape"
  input: "layer_1_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/AddN_1"
  op: "AddN"
  input: "gradients_2/add_4_grad/Reshape"
  input: "gradients_2/layer_1_type_0/MatMul_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/AddN_1"
  input: "gradients_2/layer_0_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_0_type_0/Tanh"
  input: "gradients_2/layer_0_type_0/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/add_grad/Shape"
  op: "Shape"
  input: "layer_0_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "layer_0_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/layer_0_type_0/add_grad/Shape"
  input: "gradients_2/layer_0_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_2/layer_0_type_0/Tanh_grad/TanhGrad"
  input: "gradients_2/layer_0_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/layer_0_type_0/add_grad/Sum"
  input: "gradients_2/layer_0_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/layer_0_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/layer_0_type_0/add_grad/Reshape"
  input: "layer_0_type_0/matrix/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/Reshape_15_grad/Shape"
  op: "Shape"
  input: "Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_15_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/layer_0_type_0/MatMul_grad/MatMul"
  input: "gradients_2/Reshape_15_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/Shape"
  op: "Shape"
  input: "Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients_2/Slice_2_grad/Rank"
  input: "gradients_2/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "Slice_2/begin"
  input: "gradients_2/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients_2/Slice_2_grad/Shape_1"
  input: "gradients_2/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients_2/Slice_2_grad/sub"
  input: "Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/Slice_2_grad/sub_1"
  input: "gradients_2/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/Slice_2_grad/Reshape"
  input: "gradients_2/Slice_2_grad/Reshape_1"
  input: "gradients_2/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients_2/Reshape_15_grad/Reshape"
  input: "gradients_2/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_13_grad/Shape"
  op: "Shape"
  input: "o_descriptor"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/Slice_2_grad/Pad"
  input: "gradients_2/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/concat_grad/mod"
  op: "FloorMod"
  input: "concat/axis"
  input: "gradients_2/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/concat_grad/ShapeN"
  op: "ShapeN"
  input: "Reshape_7"
  input: "Reshape_11"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_2/concat_grad/mod"
  input: "gradients_2/concat_grad/ShapeN"
  input: "gradients_2/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_2/concat_grad/Slice"
  op: "Slice"
  input: "gradients_2/Reshape_13_grad/Reshape"
  input: "gradients_2/concat_grad/ConcatOffset"
  input: "gradients_2/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients_2/Reshape_13_grad/Reshape"
  input: "gradients_2/concat_grad/ConcatOffset:1"
  input: "gradients_2/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/concat_grad/Slice"
  input: "gradients_2/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_14"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/concat_grad/Slice_1"
  input: "gradients_2/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_14_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_8"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/Reshape_7_grad/Reshape"
  input: "gradients_2/filter_type_0/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_14_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_8"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/Reshape_11_grad/Reshape"
  input: "gradients_2/filter_type_1/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Slice_4"
  input: "gradients_2/filter_type_0/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/mul"
  input: "gradients_2/filter_type_0/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_2/filter_type_0/MatMul_8_grad/Shape"
  input: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice/stack"
  input: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice/stack_1"
  input: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_2/filter_type_0/MatMul_8_grad/Shape_1"
  input: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice_1/stack"
  input: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice_1/stack_1"
  input: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice"
  input: "gradients_2/filter_type_0/MatMul_8_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/MatMul_8_grad/MatMul"
  input: "gradients_2/filter_type_0/MatMul_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_8_grad/Sum"
  input: "gradients_2/filter_type_0/MatMul_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_0/MatMul_8_grad/MatMul_1"
  input: "gradients_2/filter_type_0/MatMul_8_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_8_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_8_grad/Sum_1"
  input: "gradients_2/filter_type_0/MatMul_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Slice_4"
  input: "gradients_2/filter_type_1/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/mul"
  input: "gradients_2/filter_type_1/Reshape_14_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_2/filter_type_1/MatMul_8_grad/Shape"
  input: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice/stack"
  input: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice/stack_1"
  input: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_2/filter_type_1/MatMul_8_grad/Shape_1"
  input: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice_1/stack"
  input: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice_1/stack_1"
  input: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice"
  input: "gradients_2/filter_type_1/MatMul_8_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/MatMul_8_grad/MatMul"
  input: "gradients_2/filter_type_1/MatMul_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_8_grad/Sum"
  input: "gradients_2/filter_type_1/MatMul_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_1/MatMul_8_grad/MatMul_1"
  input: "gradients_2/filter_type_1/MatMul_8_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_8_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_8_grad/Sum_1"
  input: "gradients_2/filter_type_1/MatMul_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_0/Slice_4_grad/Rank"
  input: "gradients_2/filter_type_0/Slice_4_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_4/begin"
  input: "gradients_2/filter_type_0/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_4_grad/Shape_1"
  input: "gradients_2/filter_type_0/Slice_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_4_grad/sub"
  input: "filter_type_0/Slice_4/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/Slice_4_grad/sub_1"
  input: "gradients_2/filter_type_0/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_0/Slice_4_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_4_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Slice_4_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_4_grad/Pad"
  op: "Pad"
  input: "gradients_2/filter_type_0/MatMul_8_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Slice_4_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_1/Slice_4_grad/Rank"
  input: "gradients_2/filter_type_1/Slice_4_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_4/begin"
  input: "gradients_2/filter_type_1/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_4_grad/Shape_1"
  input: "gradients_2/filter_type_1/Slice_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_4_grad/sub"
  input: "filter_type_1/Slice_4/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/Slice_4_grad/sub_1"
  input: "gradients_2/filter_type_1/Slice_4_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_1/Slice_4_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_4_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Slice_4_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_4_grad/Pad"
  op: "Pad"
  input: "gradients_2/filter_type_1/MatMul_8_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Slice_4_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_2"
  op: "AddN"
  input: "gradients_2/filter_type_0/Slice_5_grad/Pad"
  input: "gradients_2/filter_type_0/MatMul_8_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_4_grad/Pad"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_0/Slice_5_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/mul_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/mul_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/mul_grad/Shape"
  input: "gradients_2/filter_type_0/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients_2/AddN_2"
  input: "filter_type_0/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/mul_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/mul_grad/Mul"
  input: "gradients_2/filter_type_0/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/mul_grad/Sum"
  input: "gradients_2/filter_type_0/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_3"
  op: "AddN"
  input: "gradients_2/filter_type_1/Slice_5_grad/Pad"
  input: "gradients_2/filter_type_1/MatMul_8_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_4_grad/Pad"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_1/Slice_5_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/mul_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/mul_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/mul_grad/Shape"
  input: "gradients_2/filter_type_1/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/mul_grad/Mul"
  op: "Mul"
  input: "gradients_2/AddN_3"
  input: "filter_type_1/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/mul_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/mul_grad/Mul"
  input: "gradients_2/filter_type_1/mul_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/mul_grad/Sum"
  input: "gradients_2/filter_type_1/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_10_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_10_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_10_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_10_grad/Shape"
  input: "gradients_2/filter_type_0/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_10_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/mul_grad/Reshape"
  input: "gradients_2/filter_type_0/add_10_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_10_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_10_grad/Sum"
  input: "gradients_2/filter_type_0/add_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_10_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_0/mul_grad/Reshape"
  input: "gradients_2/filter_type_0/add_10_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_10_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_10_grad/Sum_1"
  input: "gradients_2/filter_type_0/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_10_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_10_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_10_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_10_grad/Shape"
  input: "gradients_2/filter_type_1/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_10_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/mul_grad/Reshape"
  input: "gradients_2/filter_type_1/add_10_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_10_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_10_grad/Sum"
  input: "gradients_2/filter_type_1/add_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_10_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_1/mul_grad/Reshape"
  input: "gradients_2/filter_type_1/add_10_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_10_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_10_grad/Sum_1"
  input: "gradients_2/filter_type_1/add_10_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_5"
  input: "gradients_2/filter_type_0/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_6"
  input: "gradients_2/filter_type_0/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_2/filter_type_0/MatMul_3_grad/Shape"
  input: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice/stack"
  input: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice/stack_1"
  input: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_2/filter_type_0/MatMul_3_grad/Shape_1"
  input: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice_1/stack"
  input: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice_1/stack_1"
  input: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice"
  input: "gradients_2/filter_type_0/MatMul_3_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/MatMul_3_grad/MatMul"
  input: "gradients_2/filter_type_0/MatMul_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_3_grad/Sum"
  input: "gradients_2/filter_type_0/MatMul_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_0/MatMul_3_grad/MatMul_1"
  input: "gradients_2/filter_type_0/MatMul_3_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_3_grad/Sum_1"
  input: "gradients_2/filter_type_0/MatMul_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_12"
  input: "gradients_2/filter_type_0/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_0/Reshape_13"
  input: "gradients_2/filter_type_0/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_12"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_2/filter_type_0/MatMul_7_grad/Shape"
  input: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice/stack"
  input: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice/stack_1"
  input: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_2/filter_type_0/MatMul_7_grad/Shape_1"
  input: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice_1/stack"
  input: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice_1/stack_1"
  input: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice"
  input: "gradients_2/filter_type_0/MatMul_7_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/MatMul_7_grad/MatMul"
  input: "gradients_2/filter_type_0/MatMul_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_7_grad/Sum"
  input: "gradients_2/filter_type_0/MatMul_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_0/MatMul_7_grad/MatMul_1"
  input: "gradients_2/filter_type_0/MatMul_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_7_grad/Sum_1"
  input: "gradients_2/filter_type_0/MatMul_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_5"
  input: "gradients_2/filter_type_1/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_6"
  input: "gradients_2/filter_type_1/add_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_2/filter_type_1/MatMul_3_grad/Shape"
  input: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice/stack"
  input: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice/stack_1"
  input: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_2/filter_type_1/MatMul_3_grad/Shape_1"
  input: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice_1/stack"
  input: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice_1/stack_1"
  input: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice"
  input: "gradients_2/filter_type_1/MatMul_3_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/MatMul_3_grad/MatMul"
  input: "gradients_2/filter_type_1/MatMul_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_3_grad/Sum"
  input: "gradients_2/filter_type_1/MatMul_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_1/MatMul_3_grad/MatMul_1"
  input: "gradients_2/filter_type_1/MatMul_3_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_3_grad/Sum_1"
  input: "gradients_2/filter_type_1/MatMul_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/MatMul"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_12"
  input: "gradients_2/filter_type_1/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/MatMul_1"
  op: "BatchMatMulV2"
  input: "filter_type_1/Reshape_13"
  input: "gradients_2/filter_type_1/add_10_grad/Reshape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "adj_x"
    value {
      b: false
    }
  }
  attr {
    key: "adj_y"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_12"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice"
  op: "StridedSlice"
  input: "gradients_2/filter_type_1/MatMul_7_grad/Shape"
  input: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice/stack"
  input: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice/stack_1"
  input: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice_1/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice_1/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: -2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice_1/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice_1"
  op: "StridedSlice"
  input: "gradients_2/filter_type_1/MatMul_7_grad/Shape_1"
  input: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice_1/stack"
  input: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice_1/stack_1"
  input: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice_1/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 1
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice"
  input: "gradients_2/filter_type_1/MatMul_7_grad/strided_slice_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/MatMul_7_grad/MatMul"
  input: "gradients_2/filter_type_1/MatMul_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_7_grad/Sum"
  input: "gradients_2/filter_type_1/MatMul_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_1/MatMul_7_grad/MatMul_1"
  input: "gradients_2/filter_type_1/MatMul_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_7_grad/Sum_1"
  input: "gradients_2/filter_type_1/MatMul_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_6_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_6_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_3_grad/Reshape"
  input: "gradients_2/filter_type_0/Reshape_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_3_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_13_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_7_grad/Reshape"
  input: "gradients_2/filter_type_0/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_7_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_6_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_6_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_3_grad/Reshape"
  input: "gradients_2/filter_type_1/Reshape_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_3_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_13_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_7_grad/Reshape"
  input: "gradients_2/filter_type_1/Reshape_13_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_7_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Reshape_12_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_4_grad/Shape"
  input: "gradients_2/filter_type_0/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_4_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/Reshape_5_grad/Reshape"
  input: "gradients_2/filter_type_0/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_4_grad/Sum"
  input: "gradients_2/filter_type_0/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_0/Reshape_5_grad/Reshape"
  input: "gradients_2/filter_type_0/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_4_grad/Sum_1"
  input: "gradients_2/filter_type_0/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_9_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_9_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_9_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_9_grad/Shape"
  input: "gradients_2/filter_type_0/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_9_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/Reshape_12_grad/Reshape"
  input: "gradients_2/filter_type_0/add_9_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_9_grad/Sum"
  input: "gradients_2/filter_type_0/add_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_9_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_0/Reshape_12_grad/Reshape"
  input: "gradients_2/filter_type_0/add_9_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_9_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_9_grad/Sum_1"
  input: "gradients_2/filter_type_0/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_4_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_4_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_4_grad/Shape"
  input: "gradients_2/filter_type_1/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_4_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/Reshape_5_grad/Reshape"
  input: "gradients_2/filter_type_1/add_4_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_4_grad/Sum"
  input: "gradients_2/filter_type_1/add_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_1/Reshape_5_grad/Reshape"
  input: "gradients_2/filter_type_1/add_4_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_4_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_4_grad/Sum_1"
  input: "gradients_2/filter_type_1/add_4_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_9_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_9_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_9_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_9_grad/Shape"
  input: "gradients_2/filter_type_1/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_9_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/Reshape_12_grad/Reshape"
  input: "gradients_2/filter_type_1/add_9_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_9_grad/Sum"
  input: "gradients_2/filter_type_1/add_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_9_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/filter_type_1/Reshape_12_grad/Reshape"
  input: "gradients_2/filter_type_1/add_9_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_9_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_9_grad/Sum_1"
  input: "gradients_2/filter_type_1/add_9_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_4_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_4_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_9_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_4_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_4_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_11_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_9_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Reshape_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Tanh_2_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_2"
  input: "gradients_2/filter_type_0/Reshape_4_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Tanh_5_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_5"
  input: "gradients_2/filter_type_0/Reshape_11_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Tanh_2_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_2"
  input: "gradients_2/filter_type_1/Reshape_4_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Tanh_5_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_5"
  input: "gradients_2/filter_type_1/Reshape_11_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_3_grad/Shape"
  input: "gradients_2/filter_type_0/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_3_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/Tanh_2_grad/TanhGrad"
  input: "gradients_2/filter_type_0/add_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_3_grad/Sum"
  input: "gradients_2/filter_type_0/add_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_8_grad/Shape"
  input: "gradients_2/filter_type_0/add_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_8_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/Tanh_5_grad/TanhGrad"
  input: "gradients_2/filter_type_0/add_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_8_grad/Sum"
  input: "gradients_2/filter_type_0/add_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_3_grad/Shape"
  input: "gradients_2/filter_type_1/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_3_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/Tanh_2_grad/TanhGrad"
  input: "gradients_2/filter_type_1/add_3_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_3_grad/Sum"
  input: "gradients_2/filter_type_1/add_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_8_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_8_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_8_grad/Shape"
  input: "gradients_2/filter_type_1/add_8_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_8_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/Tanh_5_grad/TanhGrad"
  input: "gradients_2/filter_type_1/add_8_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_8_grad/Sum"
  input: "gradients_2/filter_type_1/add_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_2_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_0/add_3_grad/Reshape"
  input: "filter_type_0/matrix_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_6_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_0/add_8_grad/Reshape"
  input: "filter_type_0/matrix_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_2_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_1/add_3_grad/Reshape"
  input: "filter_type_1/matrix_3_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_6_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_1/add_8_grad/Reshape"
  input: "filter_type_1/matrix_3_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/AddN_4"
  op: "AddN"
  input: "gradients_2/filter_type_0/add_4_grad/Reshape"
  input: "gradients_2/filter_type_0/MatMul_2_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_0/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_2_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_2_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_2_grad/Shape"
  input: "gradients_2/filter_type_0/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_2_grad/Sum"
  op: "Sum"
  input: "gradients_2/AddN_4"
  input: "gradients_2/filter_type_0/add_2_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_2_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_2_grad/Sum"
  input: "gradients_2/filter_type_0/add_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_2_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/AddN_4"
  input: "gradients_2/filter_type_0/add_2_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_2_grad/Sum_1"
  input: "gradients_2/filter_type_0/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_5"
  op: "AddN"
  input: "gradients_2/filter_type_0/add_9_grad/Reshape"
  input: "gradients_2/filter_type_0/MatMul_6_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_0/add_9_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_7_grad/Shape"
  input: "gradients_2/filter_type_0/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_7_grad/Sum"
  op: "Sum"
  input: "gradients_2/AddN_5"
  input: "gradients_2/filter_type_0/add_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_7_grad/Sum"
  input: "gradients_2/filter_type_0/add_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/AddN_5"
  input: "gradients_2/filter_type_0/add_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_7_grad/Sum_1"
  input: "gradients_2/filter_type_0/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_6"
  op: "AddN"
  input: "gradients_2/filter_type_1/add_4_grad/Reshape"
  input: "gradients_2/filter_type_1/MatMul_2_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_1/add_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_2_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_2_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_2_grad/Shape"
  input: "gradients_2/filter_type_1/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_2_grad/Sum"
  op: "Sum"
  input: "gradients_2/AddN_6"
  input: "gradients_2/filter_type_1/add_2_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_2_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_2_grad/Sum"
  input: "gradients_2/filter_type_1/add_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_2_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/AddN_6"
  input: "gradients_2/filter_type_1/add_2_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_2_grad/Sum_1"
  input: "gradients_2/filter_type_1/add_2_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_7"
  op: "AddN"
  input: "gradients_2/filter_type_1/add_9_grad/Reshape"
  input: "gradients_2/filter_type_1/MatMul_6_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_1/add_9_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_7_grad/Shape"
  input: "gradients_2/filter_type_1/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_7_grad/Sum"
  op: "Sum"
  input: "gradients_2/AddN_7"
  input: "gradients_2/filter_type_1/add_7_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_7_grad/Sum"
  input: "gradients_2/filter_type_1/add_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients_2/AddN_7"
  input: "gradients_2/filter_type_1/add_7_grad/BroadcastGradientArgs:1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_7_grad/Sum_1"
  input: "gradients_2/filter_type_1/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat/axis"
  input: "gradients_2/filter_type_0/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/Reshape_2"
  input: "filter_type_0/Reshape_2"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_2/filter_type_0/concat_grad/mod"
  input: "gradients_2/filter_type_0/concat_grad/ShapeN"
  input: "gradients_2/filter_type_0/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_grad/Slice"
  op: "Slice"
  input: "gradients_2/filter_type_0/add_2_grad/Reshape"
  input: "gradients_2/filter_type_0/concat_grad/ConcatOffset"
  input: "gradients_2/filter_type_0/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients_2/filter_type_0/add_2_grad/Reshape"
  input: "gradients_2/filter_type_0/concat_grad/ConcatOffset:1"
  input: "gradients_2/filter_type_0/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_2_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Reshape_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_1_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat_1/axis"
  input: "gradients_2/filter_type_0/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/Reshape_9"
  input: "filter_type_0/Reshape_9"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_2/filter_type_0/concat_1_grad/mod"
  input: "gradients_2/filter_type_0/concat_1_grad/ShapeN"
  input: "gradients_2/filter_type_0/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients_2/filter_type_0/add_7_grad/Reshape"
  input: "gradients_2/filter_type_0/concat_1_grad/ConcatOffset"
  input: "gradients_2/filter_type_0/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients_2/filter_type_0/add_7_grad/Reshape"
  input: "gradients_2/filter_type_0/concat_1_grad/ConcatOffset:1"
  input: "gradients_2/filter_type_0/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_10_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_10_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_7_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Reshape_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat/axis"
  input: "gradients_2/filter_type_1/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/Reshape_2"
  input: "filter_type_1/Reshape_2"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_2/filter_type_1/concat_grad/mod"
  input: "gradients_2/filter_type_1/concat_grad/ShapeN"
  input: "gradients_2/filter_type_1/concat_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_grad/Slice"
  op: "Slice"
  input: "gradients_2/filter_type_1/add_2_grad/Reshape"
  input: "gradients_2/filter_type_1/concat_grad/ConcatOffset"
  input: "gradients_2/filter_type_1/concat_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients_2/filter_type_1/add_2_grad/Reshape"
  input: "gradients_2/filter_type_1/concat_grad/ConcatOffset:1"
  input: "gradients_2/filter_type_1/concat_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_3_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_2_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Reshape_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_1_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat_1/axis"
  input: "gradients_2/filter_type_1/concat_1_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/Reshape_9"
  input: "filter_type_1/Reshape_9"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_1_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients_2/filter_type_1/concat_1_grad/mod"
  input: "gradients_2/filter_type_1/concat_1_grad/ShapeN"
  input: "gradients_2/filter_type_1/concat_1_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients_2/filter_type_1/add_7_grad/Reshape"
  input: "gradients_2/filter_type_1/concat_1_grad/ConcatOffset"
  input: "gradients_2/filter_type_1/concat_1_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients_2/filter_type_1/add_7_grad/Reshape"
  input: "gradients_2/filter_type_1/concat_1_grad/ConcatOffset:1"
  input: "gradients_2/filter_type_1/concat_1_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_10_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_10_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_7_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Reshape_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Tanh_1_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_1"
  input: "gradients_2/filter_type_0/Reshape_3_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Tanh_4_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_4"
  input: "gradients_2/filter_type_0/Reshape_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Tanh_1_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_1"
  input: "gradients_2/filter_type_1/Reshape_3_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Tanh_4_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_4"
  input: "gradients_2/filter_type_1/Reshape_10_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_1_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_1_grad/Shape"
  input: "gradients_2/filter_type_0/add_1_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_1_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/Tanh_1_grad/TanhGrad"
  input: "gradients_2/filter_type_0/add_1_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_1_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_1_grad/Sum"
  input: "gradients_2/filter_type_0/add_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_6_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_6_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_6_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_6_grad/Shape"
  input: "gradients_2/filter_type_0/add_6_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_6_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/Tanh_4_grad/TanhGrad"
  input: "gradients_2/filter_type_0/add_6_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_6_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_6_grad/Sum"
  input: "gradients_2/filter_type_0/add_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_1_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_1_grad/Shape"
  input: "gradients_2/filter_type_1/add_1_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_1_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/Tanh_1_grad/TanhGrad"
  input: "gradients_2/filter_type_1/add_1_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_1_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_1_grad/Sum"
  input: "gradients_2/filter_type_1/add_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_6_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_6_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_6_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_6_grad/Shape"
  input: "gradients_2/filter_type_1/add_6_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_6_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/Tanh_4_grad/TanhGrad"
  input: "gradients_2/filter_type_1/add_6_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_6_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_6_grad/Sum"
  input: "gradients_2/filter_type_1/add_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_1_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_0/add_1_grad/Reshape"
  input: "filter_type_0/matrix_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_5_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_0/add_6_grad/Reshape"
  input: "filter_type_0/matrix_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_1_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_1/add_1_grad/Reshape"
  input: "filter_type_1/matrix_2_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_5_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_1/add_6_grad/Reshape"
  input: "filter_type_1/matrix_2_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/AddN_8"
  op: "AddN"
  input: "gradients_2/filter_type_0/concat_grad/Slice"
  input: "gradients_2/filter_type_0/concat_grad/Slice_1"
  input: "gradients_2/filter_type_0/MatMul_1_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_0/concat_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_2_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/AddN_8"
  input: "gradients_2/filter_type_0/Reshape_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_9"
  op: "AddN"
  input: "gradients_2/filter_type_0/concat_1_grad/Slice"
  input: "gradients_2/filter_type_0/concat_1_grad/Slice_1"
  input: "gradients_2/filter_type_0/MatMul_5_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_0/concat_1_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_9_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Tanh_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/AddN_9"
  input: "gradients_2/filter_type_0/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_10"
  op: "AddN"
  input: "gradients_2/filter_type_1/concat_grad/Slice"
  input: "gradients_2/filter_type_1/concat_grad/Slice_1"
  input: "gradients_2/filter_type_1/MatMul_1_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_1/concat_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_2_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/AddN_10"
  input: "gradients_2/filter_type_1/Reshape_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_11"
  op: "AddN"
  input: "gradients_2/filter_type_1/concat_1_grad/Slice"
  input: "gradients_2/filter_type_1/concat_1_grad/Slice_1"
  input: "gradients_2/filter_type_1/MatMul_5_grad/MatMul"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_1/concat_1_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_9_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Tanh_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/AddN_11"
  input: "gradients_2/filter_type_1/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh"
  input: "gradients_2/filter_type_0/Reshape_2_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Tanh_3_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_0/Tanh_3"
  input: "gradients_2/filter_type_0/Reshape_9_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh"
  input: "gradients_2/filter_type_1/Reshape_2_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Tanh_3_grad/TanhGrad"
  op: "TanhGrad"
  input: "filter_type_1/Tanh_3"
  input: "gradients_2/filter_type_1/Reshape_9_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_grad/Shape"
  input: "gradients_2/filter_type_0/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/Tanh_grad/TanhGrad"
  input: "gradients_2/filter_type_0/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_grad/Sum"
  input: "gradients_2/filter_type_0/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/MatMul_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/bias_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_0/add_5_grad/Shape"
  input: "gradients_2/filter_type_0/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_5_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_0/Tanh_3_grad/TanhGrad"
  input: "gradients_2/filter_type_0/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_0/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/add_5_grad/Sum"
  input: "gradients_2/filter_type_0/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_grad/Shape"
  input: "gradients_2/filter_type_1/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/Tanh_grad/TanhGrad"
  input: "gradients_2/filter_type_1/add_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_grad/Sum"
  input: "gradients_2/filter_type_1/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/MatMul_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_5_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/bias_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_5_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients_2/filter_type_1/add_5_grad/Shape"
  input: "gradients_2/filter_type_1/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_5_grad/Sum"
  op: "Sum"
  input: "gradients_2/filter_type_1/Tanh_3_grad/TanhGrad"
  input: "gradients_2/filter_type_1/add_5_grad/BroadcastGradientArgs"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
node {
  name: "gradients_2/filter_type_1/add_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/add_5_grad/Sum"
  input: "gradients_2/filter_type_1/add_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_0/add_grad/Reshape"
  input: "filter_type_0/matrix_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_0/MatMul_4_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_0/add_5_grad/Reshape"
  input: "filter_type_0/matrix_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_1/add_grad/Reshape"
  input: "filter_type_1/matrix_1_0/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_1/MatMul_4_grad/MatMul"
  op: "MatMul"
  input: "gradients_2/filter_type_1/add_5_grad/Reshape"
  input: "filter_type_1/matrix_1_1/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "transpose_a"
    value {
      b: false
    }
  }
  attr {
    key: "transpose_b"
    value {
      b: true
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_1_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_grad/MatMul"
  input: "gradients_2/filter_type_0/Reshape_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/MatMul_4_grad/MatMul"
  input: "gradients_2/filter_type_0/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_1_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_grad/MatMul"
  input: "gradients_2/filter_type_1/Reshape_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_8_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/MatMul_4_grad/MatMul"
  input: "gradients_2/filter_type_1/Reshape_8_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_0/Slice_1_grad/Rank"
  input: "gradients_2/filter_type_0/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_1/begin"
  input: "gradients_2/filter_type_0/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_1_grad/Shape_1"
  input: "gradients_2/filter_type_0/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_1_grad/sub"
  input: "filter_type_0/Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/Slice_1_grad/sub_1"
  input: "gradients_2/filter_type_0/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_0/Slice_1_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_1_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients_2/filter_type_0/Reshape_1_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_0/Slice_3_grad/Rank"
  input: "gradients_2/filter_type_0/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_3/begin"
  input: "gradients_2/filter_type_0/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_3_grad/Shape_1"
  input: "gradients_2/filter_type_0/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_3_grad/sub"
  input: "filter_type_0/Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/Slice_3_grad/sub_1"
  input: "gradients_2/filter_type_0/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_0/Slice_3_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_3_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients_2/filter_type_0/Reshape_8_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_1/Slice_1_grad/Rank"
  input: "gradients_2/filter_type_1/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_1/begin"
  input: "gradients_2/filter_type_1/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_1_grad/Shape_1"
  input: "gradients_2/filter_type_1/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_1_grad/sub"
  input: "filter_type_1/Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/Slice_1_grad/sub_1"
  input: "gradients_2/filter_type_1/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_1/Slice_1_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_1_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients_2/filter_type_1/Reshape_1_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_1/Slice_3_grad/Rank"
  input: "gradients_2/filter_type_1/Slice_3_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_3/begin"
  input: "gradients_2/filter_type_1/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_3_grad/Shape_1"
  input: "gradients_2/filter_type_1/Slice_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_3_grad/sub"
  input: "filter_type_1/Slice_3/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/Slice_3_grad/sub_1"
  input: "gradients_2/filter_type_1/Slice_3_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_1/Slice_3_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_3_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Slice_3_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_3_grad/Pad"
  op: "Pad"
  input: "gradients_2/filter_type_1/Reshape_8_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_3_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/Slice_1_grad/Pad"
  input: "gradients_2/filter_type_0/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_0/Slice_3_grad/Pad"
  input: "gradients_2/filter_type_0/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/Slice_1_grad/Pad"
  input: "gradients_2/filter_type_1/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Reshape_7_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/filter_type_1/Slice_3_grad/Pad"
  input: "gradients_2/filter_type_1/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_12"
  op: "AddN"
  input: "gradients_2/filter_type_0/Reshape_6_grad/Reshape"
  input: "gradients_2/filter_type_0/Reshape_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_0/Reshape_6_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_0/Slice_grad/Rank"
  input: "gradients_2/filter_type_0/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice/begin"
  input: "gradients_2/filter_type_0/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_grad/Shape_1"
  input: "gradients_2/filter_type_0/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_grad/sub"
  input: "filter_type_0/Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/Slice_grad/sub_1"
  input: "gradients_2/filter_type_0/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_0/Slice_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_grad/Pad"
  op: "Pad"
  input: "gradients_2/AddN_12"
  input: "gradients_2/filter_type_0/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_13"
  op: "AddN"
  input: "gradients_2/filter_type_0/Reshape_13_grad/Reshape"
  input: "gradients_2/filter_type_0/Reshape_7_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_0/Reshape_13_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/Shape"
  op: "Shape"
  input: "filter_type_0/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_0/Slice_2_grad/Rank"
  input: "gradients_2/filter_type_0/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "filter_type_0/Slice_2/begin"
  input: "gradients_2/filter_type_0/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_2_grad/Shape_1"
  input: "gradients_2/filter_type_0/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_0/Slice_2_grad/sub"
  input: "filter_type_0/Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_0/Slice_2_grad/sub_1"
  input: "gradients_2/filter_type_0/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_0/Slice_2_grad/Reshape"
  input: "gradients_2/filter_type_0/Slice_2_grad/Reshape_1"
  input: "gradients_2/filter_type_0/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_0/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients_2/AddN_13"
  input: "gradients_2/filter_type_0/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_14"
  op: "AddN"
  input: "gradients_2/filter_type_1/Reshape_6_grad/Reshape"
  input: "gradients_2/filter_type_1/Reshape_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_1/Reshape_6_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_1/Slice_grad/Rank"
  input: "gradients_2/filter_type_1/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice/begin"
  input: "gradients_2/filter_type_1/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_grad/Shape_1"
  input: "gradients_2/filter_type_1/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_grad/sub"
  input: "filter_type_1/Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/Slice_grad/sub_1"
  input: "gradients_2/filter_type_1/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_1/Slice_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_grad/Pad"
  op: "Pad"
  input: "gradients_2/AddN_14"
  input: "gradients_2/filter_type_1/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_15"
  op: "AddN"
  input: "gradients_2/filter_type_1/Reshape_13_grad/Reshape"
  input: "gradients_2/filter_type_1/Reshape_7_grad/Reshape"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_1/Reshape_13_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/Shape"
  op: "Shape"
  input: "filter_type_1/Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/stack"
  op: "Pack"
  input: "gradients_2/filter_type_1/Slice_2_grad/Rank"
  input: "gradients_2/filter_type_1/Slice_2_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/Reshape"
  op: "Reshape"
  input: "filter_type_1/Slice_2/begin"
  input: "gradients_2/filter_type_1/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/sub"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_2_grad/Shape_1"
  input: "gradients_2/filter_type_1/Slice_2_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/sub_1"
  op: "Sub"
  input: "gradients_2/filter_type_1/Slice_2_grad/sub"
  input: "filter_type_1/Slice_2/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/filter_type_1/Slice_2_grad/sub_1"
  input: "gradients_2/filter_type_1/Slice_2_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/filter_type_1/Slice_2_grad/Reshape"
  input: "gradients_2/filter_type_1/Slice_2_grad/Reshape_1"
  input: "gradients_2/filter_type_1/Slice_2_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/filter_type_1/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients_2/AddN_15"
  input: "gradients_2/filter_type_1/Slice_2_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_16"
  op: "AddN"
  input: "gradients_2/filter_type_0/Slice_grad/Pad"
  input: "gradients_2/filter_type_0/Slice_2_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_0/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_2/Reshape_5_grad/Shape"
  op: "Shape"
  input: "Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/AddN_16"
  input: "gradients_2/Reshape_5_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_17"
  op: "AddN"
  input: "gradients_2/filter_type_1/Slice_grad/Pad"
  input: "gradients_2/filter_type_1/Slice_2_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/filter_type_1/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_2/Reshape_9_grad/Shape"
  op: "Shape"
  input: "Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/AddN_17"
  input: "gradients_2/Reshape_9_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/Slice_grad/Shape"
  op: "Shape"
  input: "Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/Slice_grad/stack"
  op: "Pack"
  input: "gradients_2/Slice_grad/Rank"
  input: "gradients_2/Slice_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/Slice_grad/Reshape"
  op: "Reshape"
  input: "Slice/begin"
  input: "gradients_2/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_grad/sub"
  op: "Sub"
  input: "gradients_2/Slice_grad/Shape_1"
  input: "gradients_2/Slice_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_grad/sub_1"
  op: "Sub"
  input: "gradients_2/Slice_grad/sub"
  input: "Slice/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/Slice_grad/sub_1"
  input: "gradients_2/Slice_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/Slice_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/Slice_grad/Reshape"
  input: "gradients_2/Slice_grad/Reshape_1"
  input: "gradients_2/Slice_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_grad/Pad"
  op: "Pad"
  input: "gradients_2/Reshape_5_grad/Reshape"
  input: "gradients_2/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/Rank"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/Shape"
  op: "Shape"
  input: "Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/stack/1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/stack"
  op: "Pack"
  input: "gradients_2/Slice_1_grad/Rank"
  input: "gradients_2/Slice_1_grad/stack/1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/Reshape"
  op: "Reshape"
  input: "Slice_1/begin"
  input: "gradients_2/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/sub"
  op: "Sub"
  input: "gradients_2/Slice_1_grad/Shape_1"
  input: "gradients_2/Slice_1_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/sub_1"
  op: "Sub"
  input: "gradients_2/Slice_1_grad/sub"
  input: "Slice_1/begin"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients_2/Slice_1_grad/sub_1"
  input: "gradients_2/Slice_1_grad/stack"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/concat/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/concat"
  op: "ConcatV2"
  input: "gradients_2/Slice_1_grad/Reshape"
  input: "gradients_2/Slice_1_grad/Reshape_1"
  input: "gradients_2/Slice_1_grad/concat/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients_2/Reshape_9_grad/Reshape"
  input: "gradients_2/Slice_1_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/AddN_18"
  op: "AddN"
  input: "gradients_2/Slice_grad/Pad"
  input: "gradients_2/Slice_1_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients_2/Slice_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients_2/Reshape_4_grad/Shape"
  op: "Shape"
  input: "o_rmat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients_2/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients_2/AddN_18"
  input: "gradients_2/Reshape_4_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_38/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "strided_slice_38/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_38/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_38"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_38/stack"
  input: "strided_slice_38/stack_1"
  input: "strided_slice_38/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_27/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 552
      }
    }
  }
}
node {
  name: "mul_27"
  op: "Mul"
  input: "strided_slice_38"
  input: "mul_27/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_31/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_31/shape"
  op: "Pack"
  input: "Reshape_31/shape/0"
  input: "mul_27"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_31"
  op: "Reshape"
  input: "gradients_2/Reshape_4_grad/Reshape"
  input: "Reshape_31/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "ProdForceSeA_2"
  op: "ProdForceSeA"
  input: "Reshape_31"
  input: "o_rmat_deriv"
  input: "o_nlist"
  input: "t_natoms"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "n_a_sel"
    value {
      i: 138
    }
  }
  attr {
    key: "n_r_sel"
    value {
      i: 0
    }
  }
}
node {
  name: "ProdVirialSeA_2"
  op: "ProdVirialSeA"
  input: "Reshape_31"
  input: "o_rmat_deriv"
  input: "o_rij"
  input: "o_nlist"
  input: "t_natoms"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "n_a_sel"
    value {
      i: 138
    }
  }
  attr {
    key: "n_r_sel"
    value {
      i: 0
    }
  }
}
node {
  name: "strided_slice_39/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_39/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_39/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_39"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_39/stack"
  input: "strided_slice_39/stack_1"
  input: "strided_slice_39/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_28/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 3
      }
    }
  }
}
node {
  name: "mul_28"
  op: "Mul"
  input: "mul_28/x"
  input: "strided_slice_39"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_32/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_32/shape"
  op: "Pack"
  input: "Reshape_32/shape/0"
  input: "mul_28"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_32"
  op: "Reshape"
  input: "ProdForceSeA_2"
  input: "Reshape_32/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_33/shape"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\377\377\377\377\t\000\000\000"
      }
    }
  }
}
node {
  name: "Reshape_33"
  op: "Reshape"
  input: "ProdVirialSeA_2"
  input: "Reshape_33/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_40/stack"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_40/stack_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 2
      }
    }
  }
}
node {
  name: "strided_slice_40/stack_2"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 1
          }
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "strided_slice_40"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_40/stack"
  input: "strided_slice_40/stack_1"
  input: "strided_slice_40/stack_2"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "begin_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "ellipsis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "end_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "new_axis_mask"
    value {
      i: 0
    }
  }
  attr {
    key: "shrink_axis_mask"
    value {
      i: 1
    }
  }
}
node {
  name: "mul_29/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 9
      }
    }
  }
}
node {
  name: "mul_29"
  op: "Mul"
  input: "mul_29/x"
  input: "strided_slice_40"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_34/shape/0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "Reshape_34/shape"
  op: "Pack"
  input: "Reshape_34/shape/0"
  input: "mul_29"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "Reshape_34"
  op: "Reshape"
  input: "ProdVirialSeA_2:1"
  input: "Reshape_34/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_force/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "o_force"
  op: "ConcatV2"
  input: "Reshape_24"
  input: "Reshape_28"
  input: "Reshape_32"
  input: "o_force/axis"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_virial/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "o_virial"
  op: "ConcatV2"
  input: "Reshape_25"
  input: "Reshape_29"
  input: "Reshape_33"
  input: "o_virial/axis"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_atom_virial/axis"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 1
      }
    }
  }
}
node {
  name: "o_atom_virial"
  op: "ConcatV2"
  input: "Reshape_26"
  input: "Reshape_30"
  input: "Reshape_34"
  input: "o_atom_virial/axis"
  attr {
    key: "N"
    value {
      i: 3
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
library {
}
versions {
}
