node {
  name: "o_atom_virial/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: "mul_18/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: "strided_slice_29/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_29/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_29/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: "o_virial/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: "o_force/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: "mul_17/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: "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/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_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: 1
      }
    }
  }
}
node {
  name: "Reshape_19/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: "mul_16/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: "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/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"
  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/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/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/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/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_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/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/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/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/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/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/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/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_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/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/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/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_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/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/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/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_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/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/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/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_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/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/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/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_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/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/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/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_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/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/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/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_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/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/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/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_1/add_6_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\002\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\002\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_6_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\002\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\002\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_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/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_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/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/add_8_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\004\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_2_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\004\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_8_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\004\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_2_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\004\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_4_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/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_4_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/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/add_10_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\010\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_4_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\010\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_10_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\010\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_4_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 2
          }
        }
        tensor_content: "\001\000\000\000\010\000\000\000"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_5_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_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/concat_5_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_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/mul_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
          }
        }
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/Shape_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
          }
        }
      }
    }
  }
}
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/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/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/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_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/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/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/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/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/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/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/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/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_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/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/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/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/layer_0_type_1/add_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_0_type_0/add_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_1_type_1/add_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_1_type_0/add_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_1_type_1/mul_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_1_type_0/mul_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_2_type_1/add_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_2_type_0/add_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_2_type_1/mul_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/layer_2_type_0/mul_grad/Shape_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: 6
      }
    }
  }
}
node {
  name: "gradients/final_layer_type_1/add_grad/Shape_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: "gradients/final_layer_type_0/add_grad/Shape_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: "gradients/concat_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/grad_ys_0"
  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: "o_energy/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: "o_atom_energy/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: "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/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_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: 0
      }
    }
  }
}
node {
  name: "Reshape_18/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: "concat_2/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/concat_2_grad/mod"
  op: "FloorMod"
  input: "concat_2/axis"
  input: "gradients/concat_2_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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/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_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: 3
      }
    }
  }
}
node {
  name: "strided_slice_24/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_24/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_24/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: "final_layer_type_1/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 1
          }
        }
        double_val: -186.90367254590808
      }
    }
  }
}
node {
  name: "final_layer_type_1/bias/read"
  op: "Identity"
  input: "final_layer_type_1/bias"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@final_layer_type_1/bias"
      }
    }
  }
}
node {
  name: "final_layer_type_1/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
          dim {
            size: 1
          }
        }
        tensor_content: "O\211\200\354\034=\267?\255h\234\256\013\363\300\277\200\207\366P\263+\324\277~\007V(\335\322\267\277\210\0231\326\340\021\347?\327\\\034\224\252\376\301\277"
      }
    }
  }
}
node {
  name: "final_layer_type_1/matrix/read"
  op: "Identity"
  input: "final_layer_type_1/matrix"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@final_layer_type_1/matrix"
      }
    }
  }
}
node {
  name: "layer_2_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\006\000\000\000"
      }
    }
  }
}
node {
  name: "layer_2_type_1/idt"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
        }
        tensor_content: "\007\232V\370/\353\271?:\243\30520\304\271?\244\240;\033\362 \271?\221\017\300\206\274G\271?\376u\026\231\341\324\271?\031\223~2\235?\271?"
      }
    }
  }
}
node {
  name: "layer_2_type_1/idt/read"
  op: "Identity"
  input: "layer_2_type_1/idt"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_2_type_1/idt"
      }
    }
  }
}
node {
  name: "layer_2_type_1/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
        }
        tensor_content: "c\021\220}\003\364\316?3\340-\026\013\207\326\277O\t&\330\343\314\352\277]F\034\354\013N\317\277o\202\357&\300\223\376??\257\263J\026\222\327\277"
      }
    }
  }
}
node {
  name: "layer_2_type_1/bias/read"
  op: "Identity"
  input: "layer_2_type_1/bias"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_2_type_1/bias"
      }
    }
  }
}
node {
  name: "layer_2_type_1/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
          dim {
            size: 6
          }
        }
        tensor_content: "\222\030M\035+\260\261?\036\000Z\326q\324\271\277\2248\353#\343\307\316\277\357{\t\0212\276\261\277\225\317\205\232\301\234\341?/\0132\247\314\010\273\277\177\314\310\374\356\335\272?r\243@\322y\305\337\277\343\232\257\327\374\017\310?\035d\025\331\263\365\313\277F\020\224.S\332\250?\302\030\250\300\211\301\322\277\246\323\306e\016\266\227?\023E\247\224r\002\334?\333\230\210\336\031\376\313?\364\2314%.Q\300\277\004\322O\326\201R\323\277R\354^\242r~\346?\351\246\267v;\247\271\277]p\307N|\366\302?\010\234\2339\242}\311?\322Z\246Y\2773\306?`\330\201\336\010(\257?;\347Zc\263g\272\277\334\030\367\231\200:\277\277{\327\270:B\211\255?\224\277X\177\235\325\203?2\263\216K\027d\343\277\366\273\267\202\201\363\323\277\333\337\261:.\304\302\277\010R\321\312&U\316\277\323*An\017\361\302\277\371\317\206r\225\024\247\277L\356f\275X\213\323\277\374WG\022\377\354\315\277^\331l\010%\331\265\277"
      }
    }
  }
}
node {
  name: "layer_2_type_1/matrix/read"
  op: "Identity"
  input: "layer_2_type_1/matrix"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_2_type_1/matrix"
      }
    }
  }
}
node {
  name: "layer_1_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\006\000\000\000"
      }
    }
  }
}
node {
  name: "layer_1_type_1/idt"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
        }
        tensor_content: "\177Yv\207;\353\271? \027\231\'5\304\271?D\325\350\237\362 \271?\345Z\260\017\277G\271?\177\325\0063\342\324\271?\232-\262c\237?\271?"
      }
    }
  }
}
node {
  name: "layer_1_type_1/idt/read"
  op: "Identity"
  input: "layer_1_type_1/idt"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_1_type_1/idt"
      }
    }
  }
}
node {
  name: "layer_1_type_1/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
        }
        tensor_content: "G\230\331\273\2315\317?\'\253\t\222\013\207\326\277\342\274w\316\343\314\352\277a-i\265\014N\317\277kF\337$\300\223\376?L\005(\006\030\222\327\277"
      }
    }
  }
}
node {
  name: "layer_1_type_1/bias/read"
  op: "Identity"
  input: "layer_1_type_1/bias"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_1_type_1/bias"
      }
    }
  }
}
node {
  name: "layer_1_type_1/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
          dim {
            size: 6
          }
        }
        tensor_content: "(5YJ+\260\261?\240\210\353\024r\324\271\277\225\373{;\343\307\316\277,\2034I2\276\261\277P\252\013\237\301\234\341?\\Q\032\344\314\010\273\277Sn\304\313\357\335\272?\372\241\264\316y\305\337\277\352\346\247\342\374\017\310?h\244\223\317\263\365\313\277!}\345\rS\332\250?W\321\363\302\211\301\322\277R\255\021\353*\266\227?\247\007\223\304s\002\334?f\247\3078\032\376\313?\023\356\375\027-Q\300\277IA\265\350\201R\323\277\016^\036\010s~\346?\327\365\n\314\203\247\271\277\335\366\2160\202\366\302?\274\025\331B\242}\311?b\2211N\3003\306?\232\225\027\353\010(\257?\367\331\032_\243g\272\277\367\020\001\036\210:\277\277\357\226\276\252C\211\255?\t\271\000/\243\325\203?K\306 Q\027d\343\277\273\346\347\216\201\363\323\2770\302\310f-\304\302\277[\223\016\300)U\316\277\370l\323\371\016\361\302\277\023\020\303k\225\024\247\277\211\033\230\250X\213\323\277\220\375i\017\377\354\315\277\330\034\035\246#\331\265\277"
      }
    }
  }
}
node {
  name: "layer_1_type_1/matrix/read"
  op: "Identity"
  input: "layer_1_type_1/matrix"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_1_type_1/matrix"
      }
    }
  }
}
node {
  name: "layer_0_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\006\000\000\000"
      }
    }
  }
}
node {
  name: "layer_0_type_1/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
        }
        tensor_content: "\336\354\337\277\017\364\316?\256\273\3756\022\207\326\277\022BgSr\274\352\277b\335\345\261]\014\317\277\026\253@W\300\223\376?\027\034p\315\034\222\327\277"
      }
    }
  }
}
node {
  name: "layer_0_type_1/bias/read"
  op: "Identity"
  input: "layer_0_type_1/bias"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_0_type_1/bias"
      }
    }
  }
}
node {
  name: "layer_0_type_1/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 32
          }
          dim {
            size: 6
          }
        }
        tensor_content: "\315\335\227\363\202\256\244?[\'\222\361\020\316\254\277=\026u\014\263=\301\277\273U\210YN\267\243\277~\246\224x\030\345\323?\346w\337\000\221(\256\277\223\371\tb\232k\256?\314\242\\\373\354\300\321\277*I\211?\377q\273?>q\337\222\311\005\277\277x2\254\374\354a\234?\0013\326b\017\341\304\277Uh\316\257\233\214\213?\273T\356\"A\256\317?\271\353%V\303\334\277?\304\t\272`\375\357\261\277(\n\267*\373\250\305\277\363\310\260,\241a\331?\210&\247\261\363\007\254\277\314\377\323\246\367l\265?n\227\\]\007\303\274?\"\253\2763\342\020\271?\313~\021$\250O\242?*\273\272B\251y\256\277l\"\207_\317%\261\277F\306\005\013\243\322\240?:bc\250n\266|?\371\373\375\010\367\303\325\277,\030\373\272\354]\306\277_\365\220\303\234\372\264\277\235\250\377]Q\330\300\277D\347\260\274\377,\265\277\265S\220\346N}\231\277!`h8\330\350\305\277z\235}\272\272\235\300\277\376J.\001UT\250\277N\3145q\315\024\306?\261\016E\236.\277\245?=\227|\206\244\206\214\277$\021\004\033&\217\300\277\360\236\252/\017\342\272\277\224\267X`\000\241\323?\224\014\312\035t\313\311\277\232v\344\266\227n\253\277\253k\311\270\206\232\275?\276\020\222#!\356\267\277\357\023W`e<\314\277\303W\252\206\246;\205\277%7\323S\r\226\236?H\316\014)\313\367\307?\227\013\255\352)\027\254\277\243c\204\211\210g\256\277p\020G\273~\230\322?\246\204\206\252\"\005\240\2776l\350\020\010\362\330\277\255Jv:\014:\266?<\254j\206j@\232?\006\332\337\264G\230\257\277b\032O\235.\307P?\260\316[\333\030\205v?hF\234\213mw\306?\243C\377\027\317\354\214?S\006\376\306\350\013\313\277\231q\327\227Q\265\247?`\346\361\004\\\215\270\277x&!\236\177g\177?g%\370+\376\215\266\277)\375\271\277*.\316?\316\253B\310\030d\241?\344|\232\233\241L\325?\'K\010\363z\362\221\277\272\341Z\350:\243\223?ds\364\232b\364\260\277\277\350\224\214\2227\270\277\261\324\231\252\236\353\304?^\326\'\211\347\351\231?\2317*\032\226\262\317\277\261\030\372\222\200g\313\277\245\201\232Z\031O\314?\307I\016\356\3011\303?l\356\213^Qs\303?\014!};l\377\206?\317(\256_\212I\266\277I\333r\014\340(\277\277}:\220V\r\377\303\277\261\2253\274(\021\330?\273\006g\355\256\253\271?\246\023\301\367\301\036\242?v\224\334\314\362\231\324?\321\223\302y`\037\317?\005|\310\210\023\302\301\277\021\255\016\324\r\006\302\277\031\005h\200\2760\253\277\331h{\244~\026\226?8\204\302G\013\223\241\277@\0346_\016U\304\277\310\316WU\247\272|\277\005\363;\200\220\256\304?\230E\354\332\330\211\312?\222\001\036?P\237\305\277\325\030\317d|%\266\277X\260\225\001(M\307\2775\305L\271\374\021\270?\350g\025\361m\320\244?#\005x:U\272/?*\264B\256\347\023\277\277\2120of\225\355\302?I\006\345\034\325\254\314\277\t/4\333\376\004\271\277ix\273\325b\244\320? {;pW.\306?\224\211\325\356w\223\220?V0\234\264h*\262?\243\036\234\211\220\220\300?G\232\336H\t\230\310\277h<VP\034\353\323\277l\325\021\005\001I\246\277\254N\023\214\027H\243\277\000\215k\226\205c\270\277\261\016R58\034\300\277\372w\240\251\025+\272?\3076\307\244\027\210\264\277L%i\343\377O\274?V^\224\r\376\254\240\277\333&G\200g\275\307?f\377\224\275\004\243\265?\256fe\233\250>\242\277 \375\023\342.\\\300?\253\002\307\322X\353\247\277I\311\033\000\207\214\252\277x\2171C\022u\247\277\225\'\254R\001\t\254\277\2374\221?FL\265?0\275<\357\2238\253\277\031\024V\215sH\271\277\340m\346\n\007\364\250?\020\255\0143\307\357\322\277[\227\241FL\352\266\277\250(0AqL\315\277\307\023.\211\225.\242\277A\033P\336\036m\304?f\363\034A\330\224\311?\361\001\255\235\014\323\316\277K\370\206K\262\313\314?\2168PjOG\200?3\314;\340\363\271\231\277\235\375\312\367\361\227\300?\213v\005\300\312q\252\277\256(\362\374Q\336\206\277\365\253Ie\350s\273\277RI\345r\005t\211?\367\216\277\314l\317\241\277Mn\305\002D\007\314?\265\001\366\034k}\302?\272\002\036\032\326\244\316\277\352\\b\373\206\020\202\277\263*`a\364\246\231\277\277?H\000y\254\217\277jS\365:\034\035\322?\263\276lk\260\200\177?\357\033R[\236\201\320?v#\302<|\276\302?d\257i\376\345\256\254?\027u\330\2328\327\312\277\375\'|\177\3757\317?\032II\303\n\331\240?l\016\304\224R\010\322\277l\270\311\013\003!\272\277\t\356\033\274\216\225\301?*[\355N\216l\324?gy\017\331\364_\240?0\202\236\320\006^\256?U\276.\302\016;\322?L\004BP\366)\265?J\363r\036\221\020\261?&\013\210\237\317\003\324\277\325&\303O\213\263\211?\217e\001\372^E\252?c\357\314\034J?\232\277\326YT|\000\201\302\277\326\207\236h\214\226\277\277\221\276\250\307\344\032\303?\370o\347\240K\363\315?b\345-\026\366\224\257?wB<#r\354D?j\243\002\317#Lv?\023\"\224\215\207_\320\277\350\014\206i`\262\310?k\024\375\344\232\300\312\277\217\017#\013\313>\307?Z\267>\227\347\210\266\277\234\336\327\330O\n\273\277"
      }
    }
  }
}
node {
  name: "layer_0_type_1/matrix/read"
  op: "Identity"
  input: "layer_0_type_1/matrix"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@layer_0_type_1/matrix"
      }
    }
  }
}
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: 2
          }
        }
        tensor_content: "\377\377\377\377 \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/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: "mul_15/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 32
      }
    }
  }
}
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/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_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: 3
      }
    }
  }
}
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: 32
      }
    }
  }
}
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/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_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: 2
      }
    }
  }
}
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/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"
  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: "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: 1
          }
        }
        double_val: -93.33092474310311
      }
    }
  }
}
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/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
          dim {
            size: 1
          }
        }
        tensor_content: "\010NQ\276\034=\267?\347\245\005\345\n\363\300\277Yo8\025\261+\324\277\007\225\277E\356\322\267\277\260\223\205e\340\021\347?P\317f\312\251\376\301\277"
      }
    }
  }
}
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: "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\006\000\000\000"
      }
    }
  }
}
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: 6
          }
        }
        tensor_content: "\247\230\005\3306\353\271?\335+\023 \037\304\271?-&\031\254\361 \271?r9(\202\367\312\271?(\323\245M\340\324\271?\274\224\030\036\233?\271?"
      }
    }
  }
}
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/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
        }
        tensor_content: "\233\212\036(\004\364\316?\317Z\300\024\r\207\326\277\314z-\n\344\314\352\277\254\343\037\252N\014\317\277@8i\'\300\223\376?]*\276\323\025\222\327\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/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
          dim {
            size: 6
          }
        }
        tensor_content: "6\236x\364*\260\261?/[\325\255q\324\271\277\237i\321\026\343\307\316\277?\017\r\0072\276\261\277@L\330\230\301\234\341?\334\024\301\200\314\010\273\277\357E]\342\360\335\272?_z\306Ez\305\337\277k\207\330t\374\017\310?H\335\345\017\264\365\313\277\010\325\232\331S\332\250?,_\245+\212\301\322\277\265}b\337\\\266\227? y\204\360n\002\334?\352\017q\221\030\376\313?s\306\034?0Q\300\277\014=\242\233\201R\323\277D\010c\351p~\346?:n\344Dd\247\271\277\231\033\031~\214\366\302?\021<\255\027\243}\311?\266\351m\323\2623\306?t4dK\010(\257?\034h\224\272\235g\272\277\215\027\002\370\201:\277\277G\351\331<M\211\255?\375c\020\200n\325\203?T\234\327j\030d\343\277\227EX`\201\363\323\277L\234\r*-\304\302\277\322\t\265\372%U\316\277\304\312\252-\017\361\302\277\016\261\265/\225\024\247\277\273\354\374\231Z\213\323\277\3167L\373\376\354\315\277\030\"\2719&\331\265\277"
      }
    }
  }
}
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_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\006\000\000\000"
      }
    }
  }
}
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: 6
          }
        }
        tensor_content: "5\310\376\242>\353\271?\277\226\264\302*\304\271?\2702\0361\362 \271?\2712a\225\002\313\271?\025q\334\346\340\324\271?Cm\026\024\234?\271?"
      }
    }
  }
}
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/bias"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
        }
        tensor_content: "\000\345HX\t\364\316?{\323\241\327\016\207\326\277\236t\215\003\344\314\352\277\360\324\3453O\014\317\277\251o\366$\300\223\376?s\203\244\357\025\222\327\277"
      }
    }
  }
}
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/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 6
          }
          dim {
            size: 6
          }
        }
        tensor_content: "\276\214r/+\260\261?\215D\020\363q\324\271\277L\372p1\343\307\316\277x5\226M2\276\261\277\241\264:\236\301\234\341?\024\205O\310\314\010\273\277id\2418\361\335\272?\373\036\"@z\305\337\277\353\225\311\177\374\017\310?3\3223\010\264\365\313\277l7\220\264S\332\250?\027\342r#\212\301\322\277-\226:n_\266\227?\356\347\3018o\002\334?\344j\'\305\030\376\313?\326\230\327\253/Q\300\277\216C\351\252\201R\323\277\351f\310\027q~\346?Dr\353U\215\247\271\277*v\357\001\217\366\302?\257\262\303!\243}\311?\361\346\203Z\2703\306?\327:\026\\\010(\257?\221K\226\202\230g\272\277\331\177\252H\212:\277\277\231\256O\023P\211\255?\ti\354_p\325\203?*\335\363)\030d\343\2777\321\306k\201\363\323\277\244\007\243\332,\304\302\277\322\022\026\206)U\316\277^\031FL\016\361\302\277\244\216\365\330\224\024\247\277\347\324\023\356Y\213\323\277t\026U\377\376\354\315\277;n\215w$\331\265\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_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\006\000\000\000"
      }
    }
  }
}
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: 6
          }
        }
        tensor_content: "m\"\335\374\014\364\316?J8\030\374\021\207\326\277R\200~Qr\274\352\277\202\246\'d]\014\317\277\332p\\E\300\223\376?\2319\014\205\034\222\327\277"
      }
    }
  }
}
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/matrix"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 32
          }
          dim {
            size: 6
          }
        }
        tensor_content: "\363\276\253\203\257\256\244?<\035\031\t\t\316\254\277\235\337\035\362\262=\301\277\334\320U\304I\267\243\277E\223HY\030\345\323?\211\356\207H\204(\256\277\311\272\337a\274k\256?)bj\356\353\300\321\277\372\302/v\377q\273?7:\316(\307\005\277\277\3622\352\020\353a\234?\342\037\212?\246\"\305\277\033\003O\310\004\215\213?\311\373lsC\256\317?\264\372\021\217\303\334\277?+~\376\303\372\357\261\277\261o\251f\373\250\305\277\322\304\214\347\312@\331?\024c\"^\356\007\254\277\273\3342\021\007m\265?\303\321G\257\007\303\274?\010\244\255\\\350\020\271?D\335lX\247O\242?\000\233\353\214fz\256\277\321A\234_\276%\261\277^\313\227r\253\322\240?5\377\312\022r\266|?7\256yn\366\303\325\277\035Xs\370\354]\306\277!\317\370|\312}\265\2770o\316tJ\330\300\277\202\t;P\373,\265\277fB\006\006N}\231\277\353#\276\365\326\350\305\277\322\372\376\366\272\235\300\277\004\261\333f\356Z\251\277\213\361\357\353\322\024\306?\023s~e8\277\245?x\327\030\263\242\206\214\277d\227:\275$\217\300\277\241D\253\245\017\342\272\277\266\26528%\200\323?h\270\377\346r\313\311\277J\025\205Ptn\253\2777c\360\014\207\232\275?*\227\220g\032\356\267\277\274\3213\222e<\314\277\276g]1\301=\205\277\210\204\023\340A\226\236?Vu\213y\315\367\307?\240\355\324x)\027\254\277pL\rP\203g\256\277\252\335M\235~\230\322?\256\245\246\323\324\013\241\277\230Y\213S\005\362\330\277\337\374\022\036\021:\266?\036\214\034pk@\232?\007\363\271=B\230\257\277\324\255%\035\021\307P?\325\255\266\243\235\234l?\260\353\376\000rw\306?R\334\372\220\372\354\214?\'\001\232\250\350\013\313\277\360XK\211W\265\247?P}\rx\\\215\270\277\377\220hv\216/w?\267\325\034\364\373\215\266\277\006jv\2015.\316?\323\216rv\031d\241?\243\333\206\205\243L\325?\023\203\231x|\362\221\277\373\317\325\311\205\242\223?\253\0212\361_\364\260\277\320\0136\"\2037\270\277\335q\217\323\236\353\304?\364\271\343,\000\352\231?\373_\023M\226\262\317\277\247P\206\345\257g\313\277\321\325d\221\032O\314?\032\"\246\307\3121\303?2j\237\210Qs\303?\257\355\210\033\242\377\206?j\244g\303\212I\266\277H=\311a#)\277\277\246\222\242:\014\377\303\277 \314\021\035.\021\330?>\370~D\257\253\271?\233\t$G\321\036\242?\370\200\203\264\362\231\324?\231\361\361\325I\037\317?\024\341.\367\022\302\301\277\313\231r5\321G\302\277\350sA\227\2750\253\277A-k\215\330\026\226?D\301\006\353\013\223\241\2771\004-\370\021U\304\277\323t?\255\\\271|\277;\263\344}\222\256\304?\024b-\365\330\211\312?\371\3715\031O\237\305\277|7\024\342|%\266\277#\214Q\354&M\307\277f4\352~\014\022\270?\354O(pv\320\244?\000\'7\177\302\272/?\017\227\305@\345\023\277\277X\036\374(\225\355\302?R\337O\331o\356\314\277x\301\213\216\362\004\271\277\210E`\001d\244\320?\307\264\260\214W.\306?\037\tlq\202\223\220?\326\203\275<h*\262?\333\242\202]\341N\300?\323E\373\370\007\230\310\277\201k\253r\030\353\323\277^\n\267a\000I\246\277\331\371w=\013H\243\277\260\2402\374\205c\270\277\221\203\203\271e\034\300\277lz\270\216!+\272?\374C4\367\022\210\264\277=\023\237\034\000P\274?\231\256\210\315\370\254\240\277\031\231\007Dg\275\307?\226\031\023D\245\037\265?\240(\212\221\224>\242\277\206\007\254Z1\\\300?.Gk]X\353\247\277\n\350\376\201\201\214\252\277\224\366:0\023u\247\277i\371gR\343\017\255\277\370\365NxNL\265?\305[\021\361\2108\253\277y\204QPsH\271\277\335\377E\004\r\364\250?\327\034\363O\307\357\322\277\367\336\302\032\316m\267\277\373Bu/pL\315\277lm\025\364i.\242\277\210\031\320\t\037m\304?\264G\366\030\334\224\311?\r\210r\316\014\323\316\277\234\253Q\211\235\313\314?\t\014\336\343\327G\200?\330\260d\000\343\271\231\277\333@\355\022\362\227\300?\231[a\353\305q\252\277[D\261\325U\336\206\277\263\364\354\315\025\367\273\277\275h\3168rt\211?pF\216\330c\317\241\277\"O\320\036D\007\314?\244P\014bl}\302?92\231V\326\244\316\277b\177\373\350\003+\206\277-\230\t,\311\246\231\277 \203dhQ\254\217\277W\234\216I\034\035\322?v\207\023z\334\200\177?\2278\323=\236\201\320?\277\tM\037\305|\302?6r:\347\352\256\254?kE:\323/\327\312\277\230\276g\251\3757\317?\333<i&\030\331\240?&\377\302\255R\010\322\277.\007\242\302G!\272\277Y\252\321m\221\225\301?\237\206j$\220l\324?#%\205`\365_\240?\032%\253?\016^\256?L\301\216\246\016;\322?\202Iu\253]\246\264?5*\337\364\225\020\261?\354\001\247\251\315\003\324\277\306\211\232x\215\263\211?\016\324C\312fE\252?\242\277\316\317K?\232\277\305\320\304\027\317\302\302\277\212\230\241/\210\226\277\277-V8H\351\032\303?\025\003\305\304K\363\315?\227\243[\270\376\224\257?\332!\276\016=\354D?u\2673\307\302#l?\031\304t+\207_\320\277Q&\026k\302p\310?\312\374\320\262\232\300\312\277\034W\256$\322>\307?D\314\237\360\347\210\266\277\ng\3253^\n\273\277"
      }
    }
  }
}
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: "add_2/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: "strided_slice_19/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_19/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_19/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: "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: "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/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: "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: "mul_13/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 32
      }
    }
  }
}
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/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_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: 2
      }
    }
  }
}
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: "mul_12/x"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 32
      }
    }
  }
}
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/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"
  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: "fitting_attr/daparam"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
node {
  name: "fitting_attr/dfparam"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 0
      }
    }
  }
}
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: "gradients/concat_grad/mod"
  op: "FloorMod"
  input: "concat/axis"
  input: "gradients/concat_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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: 32
      }
    }
  }
}
node {
  name: "strided_slice_13/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_13/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_13/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_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/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_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: 0
      }
    }
  }
}
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/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\004\000\000\000"
      }
    }
  }
}
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: "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: "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/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_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\010\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/concat_5/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/concat_5_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat_5/axis"
  input: "gradients/filter_type_1/concat_5_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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\010\000\000\000"
      }
    }
  }
}
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: 8
          }
        }
        tensor_content: "\337\254\364\200\023\364\316?s{-\017\023\207\326\277\330}F\335\345\314\352\277\365\024fth\014\317\277]\327\331\366\206\213\376?\246\372\264}\003\263\327\277\226\361\223A\016\373\326?\245\214yD\253y\373\277"
      }
    }
  }
}
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/matrix_3_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 4
          }
          dim {
            size: 8
          }
        }
        tensor_content: "\246s\037\274\2773\262?@\0352\305\006X\272\277\206Y\256\'\341\307\316\277}\002\242\003DA\262\277\343\337#\2354\255\341?c\217EBb\214\273\277\241|\031_\370\335\272?k\365l\207\225\244\337\277\270o\302\360\305Q\310?\202d\024\250\265\365\313\277\352`I\177^\332\250?\241\300\220!~\301\322\277\027\037Y\245\215\266\227?Q5J\324l\002\334?\207\235\010\\\343?\314?\247\034\006\255i\017\300\277DI\244K\201R\323\277V`\225\334o~\346?\224&`A\023$\271\277\002\'\263\247\370\264\302?\021|\256\235\247}\311?4\220\374\212\001\362\305?\216\334P\326\231\027\260?\320\035}\271og\272\277\334\025lL\327\266\276\277\340\250\233\316\350\201\254?\335\231ZV\313\361\207?5\200\307v\200t\343\277j\355Ux\177\363\323\277\336\200#\014\005\006\303\277\305\276\216hc\023\316\277\237t\315A\007\361\302\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/concat_4/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/concat_4_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat_4/axis"
  input: "gradients/filter_type_1/concat_4_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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\004\000\000\000"
      }
    }
  }
}
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: 4
          }
        }
        tensor_content: "j\364\006h\024\364\316?\367\356\276\271\022\207\326\277\214\321Wy\346\314\352\277a\235\010\3170N\317\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/matrix_2_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 2
          }
          dim {
            size: 4
          }
        }
        tensor_content: "d9\016,\241\242\271?N\200\005\333\037\223\302\2772\t\2325\272\312\325\277[<\331\267\3302\271\277q\265\267\3212\374\350?\334\334\346\035*m\303\277\236\t\217\353\326\361\302?)I\265*ac\346\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/concat_3/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/concat_3_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat_3/axis"
  input: "gradients/filter_type_1/concat_3_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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\002\000\000\000"
      }
    }
  }
}
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: 2
          }
        }
        tensor_content: ",\346\220w\023\364\316?\245zf\203\367\247\326\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/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: 2
          }
        }
        tensor_content: "@\326\271o\334\022\302?\263\243\3771\0377\312\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/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/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/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: "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: "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/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/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: "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: "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_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\010\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_1/concat_2/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/concat_2_grad/mod"
  op: "FloorMod"
  input: "filter_type_1/concat_2/axis"
  input: "gradients/filter_type_1/concat_2_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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\010\000\000\000"
      }
    }
  }
}
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: 8
          }
        }
        tensor_content: "\226\321\237\340\r\364\316?\362N\211-\023\207\326\277\343\352\311\335\345\314\352\277\2612\205\022o\014\317\277f\200\320\366\206\213\376?1\004\0229\036\222\327\277\361\373\255:\016\373\326?\205\316wD\253y\373\277"
      }
    }
  }
}
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/matrix_3_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 4
          }
          dim {
            size: 8
          }
        }
        tensor_content: "b\353k\207\2773\262?\255\326ky\006X\272\277\037Z\223%\341\307\316\277\246\232\265I\255A\262\277\324\026\355\2344\255\341?\222\034\'\303a\214\273\2777\266\330J\370\335\272?\244S\273\207\225\244\337\277\n\022\305\344\305Q\310?Fb\210x\265\365\313\277d~\324~^\332\250?\013\267\335V\202\301\322\277\203K7\246\215\266\227?\347\244r\017m\002\334?\007{8Y\343?\314?\245\366%\255i\017\300\277n\364eU\201R\323\277\251\n\357\347o~\346?\226\020,@\023$\271\277\035\336\223\036\344\264\302?\323\032\251\235\247}\311?\017C\364\353\001\362\305?\'\235\336\306\231\027\260?\310\274\336\271og\272\277\203\236N~\327\266\276\277Y\001;\323\353\201\254?4\250\331\022\313\361\207?\034\231\r\267\203t\343\277xrIx\177\363\323\277_\036\217b\004\006\303\277H\004azc\023\316\277\327u\340A\007\361\302\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/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: "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: "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\004\000\000\000"
      }
    }
  }
}
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: 4
          }
        }
        tensor_content: ">\317<o\024\364\316?\254S\232\316\022\207\326\277ztFt\346\314\352\277\207U[\2440N\317\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/matrix_2_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 2
          }
          dim {
            size: 4
          }
        }
        tensor_content: ",e\0251\241\242\271?\247\252\247\026 \223\302\277\340\221\324\226\272\312\325\277\212\237s\'\3272\271\277\257\006\377\3212\374\350?\267\304s7*m\303\277\324\256QA\326\361\302?\352\231V\020ac\346\277"
      }
    }
  }
}
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/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/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: "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\002\000\000\000"
      }
    }
  }
}
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: 2
          }
        }
        tensor_content: "b\304\275\304\023\364\316?}}Q\351\366\247\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/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: 2
          }
        }
        tensor_content: "\275\251\271U\334\022\302?\237\241\3570\0017\312\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/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/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/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: "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: "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/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/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: "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: "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(\002\000\000"
      }
    }
  }
}
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/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: "mul_8/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: "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/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_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: 3
      }
    }
  }
}
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: "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: "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/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"
  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: "mul_4/y"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: 32
      }
    }
  }
}
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/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_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: 2
      }
    }
  }
}
node {
  name: "strided_slice_6/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_6/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_6/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: "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/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\004\000\000\000"
      }
    }
  }
}
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: "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: "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/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_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\010\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/concat_5/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/concat_5_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat_5/axis"
  input: "gradients/filter_type_0/concat_5_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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\010\000\000\000"
      }
    }
  }
}
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: 8
          }
        }
        tensor_content: "\233P\203\335\3315\317?\367B\313\214\023\207\326\277E\212 \000\346\314\352\277g\312sf2N\317\277rJ \360\206\213\376?\"\321\007\323\035\222\327\277\304\242[^\016\373\326?\020\224WP\253y\373\277"
      }
    }
  }
}
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/matrix_3_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 4
          }
          dim {
            size: 8
          }
        }
        tensor_content: "\177d\3576\3003\262?V\306\034*\005X\272\277/3\204\243\340\307\316\277\321\353\203!\032\276\261\277\244\037\241\2524\255\341?\366\227\205\335\\\214\273\277v\205\330\241\367\335\272?\'t\274W\225\244\337\277\253\210\213\'\306Q\310?v\3329\246\264\365\313\2777\271\200\212`\332\250?\371\032\0046\241\240\322\2773\233\205S\217\266\227?@K\320\375m\002\334?\233\340\026\375\342?\314?\26456Ni\017\300\277\201\355\005/\201R\323\277\205\362\342\027p~\346?\002\356\343;\022$\271\277\017\242\313c\250\366\302?F\225|\323\247}\311?H6\034\023\004\362\305?\237\226m\027\231\027\260?\2465H\373ng\272\277\234\246O\377\326\266\276\277}\233\201:\357\201\254?\n\323\305\277\322\361\207?H\'\336\232\031d\343\277\r\304P]\177\363\323\277\246\313\371\021\002\006\303\277\024\271\332\337c\023\316\277\017\234c\342\006\361\302\277"
      }
    }
  }
}
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/concat_4/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/concat_4_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat_4/axis"
  input: "gradients/filter_type_0/concat_4_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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\004\000\000\000"
      }
    }
  }
}
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: 4
          }
        }
        tensor_content: "\255\262\022\342\023\364\316?\216\3353\320\022\207\326\277\2012\221.\346\314\352\277\370\366\270\225/N\317\277"
      }
    }
  }
}
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/matrix_2_1"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 2
          }
          dim {
            size: 4
          }
        }
        tensor_content: "\360\261\252\032\242\242\271?Z\0276\027\037\223\302\277\255\343\306\277\272\312\325\277\266a\374\242\3302\271\277bqr\3612\374\350?|\237\342\230)m\303\277v\200\033\313\325\361\302?H\004MGac\346\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/concat_3/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/concat_3_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat_3/axis"
  input: "gradients/filter_type_0/concat_3_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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\002\000\000\000"
      }
    }
  }
}
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: 2
          }
        }
        tensor_content: "Tl\3764\023\364\316?\321\313\331 \370\247\326\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/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: 2
          }
        }
        tensor_content: "P\375\251\231\334\022\302?>@\033\257S\365\311\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/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/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/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: "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: "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/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/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: "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: "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_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\010\000\000\000"
      }
    }
  }
}
node {
  name: "filter_type_0/concat_2/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/concat_2_grad/mod"
  op: "FloorMod"
  input: "filter_type_0/concat_2/axis"
  input: "gradients/filter_type_0/concat_2_grad/Rank"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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\010\000\000\000"
      }
    }
  }
}
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: 8
          }
        }
        tensor_content: "#@\032\327\023\364\316?\214\261\251\202\023\207\326\277\250\240\316\000\346\314\352\277\313\245\341$4N\317\277\036H2\360\206\213\376?\361\361+q\036\222\327\277\351\242`a\016\373\326?D\226MP\253y\373\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/matrix_3_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 4
          }
          dim {
            size: 8
          }
        }
        tensor_content: "\003`1\373\2773\262?~)\177\222\005X\272\277\375U\215\231\340\307\316\277\321\007\\\t\037\276\261\277\275\215\347\2514\255\341?K\024\231\312`\214\273\277@\303\213\275\367\335\272?\275\361\265X\225\244\337\277\375\204\245\010\306Q\310?\302$\205\002\265\365\313\277\"\373\262\270`\332\250?T\352F\351\240\240\322\277\016\304:L\217\266\227?_\332L-m\002\334?\001\t\025\003\343?\314?\337\201\310Ni\017\300\277G\354D=\201R\323\277\342G\251\004p~\346?`y,$\022$\271\277\301E\2629\250\366\302?B\316N\322\247}\311?\207\014\326@\002\362\305?<h\335*\231\027\260?\\J\317\374ng\272\277\316\265\353M\327\266\276\277\370\277)\203\353\201\254?<\322\010h\324\361\207?\"\262\376*\031d\343\277C9\301]\177\363\323\277A\256.U\004\006\303\277\020I\267\325c\023\316\277X\177\355\342\006\361\302\277"
      }
    }
  }
}
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/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: "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: "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\004\000\000\000"
      }
    }
  }
}
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: 4
          }
        }
        tensor_content: "\326_\004\346\023\364\316?\244\312t\346\022\207\326\277\322\324+\'\346\314\352\277=\340>\346/N\317\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/matrix_2_0"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
          dim {
            size: 2
          }
          dim {
            size: 4
          }
        }
        tensor_content: "\342\005\207\031\242\242\271?\340Qpe \223\302\277\\|\033L\272\312\325\277\334\271+\245\3312\271\2772\0210\3612\374\350?\257\341\305\\*m\303\277\371\003\211Q\326\361\302?\031\227\331Qac\346\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/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/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: "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\002\000\000\000"
      }
    }
  }
}
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: 2
          }
        }
        tensor_content: "\267\263\241\301\022\364\316?\303\301\272\223\370\247\326\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/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: 2
          }
        }
        tensor_content: "\216(\356\252\334\022\302?\340\341\366?V\365\311\277"
      }
    }
  }
}
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/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/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/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: "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: "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/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/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: "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: "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(\002\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/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: "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: "mul_3/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: "strided_slice_5/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_5/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_5/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: "Reshape_6/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: "mul_2/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: "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/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_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: 0
      }
    }
  }
}
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_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: "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/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_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: 1
      }
    }
  }
}
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\t\000\000\000"
      }
    }
  }
}
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: "mul_1/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: "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/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"
  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: "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: "q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?q\020!U\250\343\301?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\257\201<\276\276\363\265?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?\r\366\211\314\n\257\277?xP%\374D\237\263?xP%\374D\237\263?xP%\374D\237\263?"
      }
    }
  }
}
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: "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: "\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\327\316ka/\275\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\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\256\271\367\256y\230\250?\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/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/rcut"
  op: "Const"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_DOUBLE
        tensor_shape {
        }
        double_val: 6.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: "ener"
      }
    }
  }
}
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/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: "t_mesh"
  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: "strided_slice_29"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_29/stack"
  input: "strided_slice_29/stack_1"
  input: "strided_slice_29/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_18"
  op: "Mul"
  input: "mul_18/x"
  input: "strided_slice_29"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_atom_virial/shape"
  op: "Pack"
  input: "o_atom_virial/shape/0"
  input: "mul_18"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
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: "mul_17"
  op: "Mul"
  input: "mul_17/x"
  input: "strided_slice_28"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_force/shape"
  op: "Pack"
  input: "o_force/shape/0"
  input: "mul_17"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "strided_slice_27"
  op: "StridedSlice"
  input: "t_natoms"
  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: "mul_16"
  op: "Mul"
  input: "strided_slice_27"
  input: "mul_16/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_19/shape"
  op: "Pack"
  input: "Reshape_19/shape/0"
  input: "mul_16"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
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: "o_atom_energy/shape"
  op: "Pack"
  input: "o_atom_energy/shape/0"
  input: "strided_slice_26"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
node {
  name: "strided_slice_25"
  op: "StridedSlice"
  input: "t_natoms"
  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_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_15"
  op: "Mul"
  input: "strided_slice_22"
  input: "mul_15/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice_3/size"
  op: "Pack"
  input: "Slice_3/size/0"
  input: "mul_15"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
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: "strided_slice_19"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_19/stack"
  input: "strided_slice_19/stack_1"
  input: "strided_slice_19/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_2"
  op: "Add"
  input: "add_2/x"
  input: "strided_slice_19"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "mul_14"
  op: "Mul"
  input: "add_2"
  input: "mul_14/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice_3/begin"
  op: "Pack"
  input: "Slice_3/begin/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: "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: "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_13"
  op: "Mul"
  input: "strided_slice_18"
  input: "mul_13/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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: "strided_slice_17"
  op: "StridedSlice"
  input: "t_natoms"
  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: "mul_12"
  op: "Mul"
  input: "mul_12/x"
  input: "strided_slice_17"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_13/shape"
  op: "Pack"
  input: "Reshape_13/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: "strided_slice_13"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_13/stack"
  input: "strided_slice_13/stack_1"
  input: "strided_slice_13/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"
  op: "Mul"
  input: "strided_slice_13"
  input: "mul_9/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
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: "mul_8"
  op: "Mul"
  input: "strided_slice_11"
  input: "mul_8/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice_1/size"
  op: "Pack"
  input: "Slice_1/size/0"
  input: "mul_8"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
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: "add"
  op: "Add"
  input: "add/x"
  input: "strided_slice_10"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "mul_7"
  op: "Mul"
  input: "add"
  input: "mul_7/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice_1/begin"
  op: "Pack"
  input: "Slice_1/begin/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: "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: "strided_slice_7"
  op: "StridedSlice"
  input: "t_natoms"
  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: "mul_4"
  op: "Mul"
  input: "strided_slice_7"
  input: "mul_4/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_5"
  op: "StridedSlice"
  input: "t_natoms"
  input: "strided_slice_5/stack"
  input: "strided_slice_5/stack_1"
  input: "strided_slice_5/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"
  op: "Mul"
  input: "strided_slice_5"
  input: "mul_3/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Slice/size"
  op: "Pack"
  input: "Slice/size/0"
  input: "mul_3"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
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"
  op: "Mul"
  input: "mul_2/x"
  input: "strided_slice_4"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_6/shape"
  op: "Pack"
  input: "Reshape_6/shape/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: "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: "Reshape_4/shape"
  op: "Pack"
  input: "Reshape_4/shape/0"
  input: "strided_slice_3"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "axis"
    value {
      i: 0
    }
  }
}
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: "mul_1"
  op: "Mul"
  input: "strided_slice_2"
  input: "mul_1/y"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_2/shape"
  op: "Pack"
  input: "Reshape_2/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: "t_type"
  op: "Placeholder"
  attr {
    key: "dtype"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: -1
        }
      }
    }
  }
}
node {
  name: "Reshape_4"
  op: "Reshape"
  input: "t_type"
  input: "Reshape_4/shape"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "t_coord"
  op: "Placeholder"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: -1
        }
      }
    }
  }
}
node {
  name: "Reshape_2"
  op: "Reshape"
  input: "t_coord"
  input: "Reshape_2/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "t_box"
  op: "Placeholder"
  attr {
    key: "dtype"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "shape"
    value {
      shape {
        dim {
          size: -1
        }
      }
    }
  }
}
node {
  name: "Reshape_3"
  op: "Reshape"
  input: "t_box"
  input: "Reshape_3/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "ProdEnvMatA"
  op: "ProdEnvMatA"
  input: "Reshape_2"
  input: "Reshape_4"
  input: "t_natoms"
  input: "Reshape_3"
  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: 6.0
    }
  }
  attr {
    key: "rcut_r_smth"
    value {
      f: 0.5
    }
  }
  attr {
    key: "sel_a"
    value {
      list {
        i: 46
        i: 92
      }
    }
  }
  attr {
    key: "sel_r"
    value {
      list {
        i: 0
        i: 0
      }
    }
  }
}
node {
  name: "o_nlist"
  op: "Identity"
  input: "ProdEnvMatA:3"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_rij"
  op: "Identity"
  input: "ProdEnvMatA:2"
  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: "Reshape_5"
  op: "Reshape"
  input: "ProdEnvMatA"
  input: "Reshape_5/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_rmat"
  op: "Identity"
  input: "Reshape_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/Reshape_6_grad/Shape"
  op: "Shape"
  input: "o_rmat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_6"
  op: "Reshape"
  input: "o_rmat"
  input: "Reshape_6/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/Shape_1"
  op: "Shape"
  input: "Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Shape_2"
  op: "Shape"
  input: "Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_12"
  op: "StridedSlice"
  input: "Shape_2"
  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: "Reshape_11/shape"
  op: "Pack"
  input: "strided_slice_12"
  input: "mul_9"
  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_6"
  input: "Slice_1/begin"
  input: "Slice_1/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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/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"
  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/Reshape_10_grad/Shape"
  op: "Shape"
  input: "Slice_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_10"
  op: "Reshape"
  input: "Slice_1"
  input: "Reshape_10/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/Slice_2"
  op: "Slice"
  input: "Reshape_10"
  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: "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/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"
  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/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_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: "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/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: "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: "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: "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/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"
  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/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: "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: "gradients/filter_type_1/concat_3_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/Reshape_8"
  input: "filter_type_1/Reshape_8"
  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_3_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_1/concat_3_grad/mod"
  input: "gradients/filter_type_1/concat_3_grad/ShapeN"
  input: "gradients/filter_type_1/concat_3_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "filter_type_1/concat_3"
  op: "ConcatV2"
  input: "filter_type_1/Reshape_8"
  input: "filter_type_1/Reshape_8"
  input: "filter_type_1/concat_3/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
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: "gradients/filter_type_1/add_6_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_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: "filter_type_1/add_6"
  op: "Add"
  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_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "gradients/filter_type_1/add_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_9"
  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: "filter_type_1/add_7"
  op: "Add"
  input: "filter_type_1/concat_3"
  input: "filter_type_1/Reshape_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_4_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/add_7"
  input: "filter_type_1/add_7"
  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_4_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_1/concat_4_grad/mod"
  input: "gradients/filter_type_1/concat_4_grad/ShapeN"
  input: "gradients/filter_type_1/concat_4_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "filter_type_1/concat_4"
  op: "ConcatV2"
  input: "filter_type_1/add_7"
  input: "filter_type_1/add_7"
  input: "filter_type_1/concat_4/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/MatMul_5"
  op: "MatMul"
  input: "filter_type_1/add_7"
  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: "gradients/filter_type_1/add_8_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_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: "filter_type_1/add_8"
  op: "Add"
  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_8"
  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: "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: "gradients/filter_type_1/add_9_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_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: "filter_type_1/add_9"
  op: "Add"
  input: "filter_type_1/concat_4"
  input: "filter_type_1/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_5_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/add_9"
  input: "filter_type_1/add_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_5_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_1/concat_5_grad/mod"
  input: "gradients/filter_type_1/concat_5_grad/ShapeN"
  input: "gradients/filter_type_1/concat_5_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "filter_type_1/concat_5"
  op: "ConcatV2"
  input: "filter_type_1/add_9"
  input: "filter_type_1/add_9"
  input: "filter_type_1/concat_5/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_11_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/MatMul_6"
  op: "MatMul"
  input: "filter_type_1/add_9"
  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: "gradients/filter_type_1/add_10_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_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: "filter_type_1/add_10"
  op: "Add"
  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_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "gradients/filter_type_1/add_11_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_11_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_11_grad/Shape"
  input: "gradients/filter_type_1/add_11_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/add_11"
  op: "Add"
  input: "filter_type_1/concat_5"
  input: "filter_type_1/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/Reshape_12"
  op: "Reshape"
  input: "filter_type_1/add_11"
  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/MatMul_7"
  op: "BatchMatMul"
  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: "gradients/filter_type_1/add_12_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: "filter_type_1/Slice"
  op: "Slice"
  input: "Reshape_10"
  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: "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/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"
  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/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_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: "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/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: "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: "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: "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/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"
  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/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: "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: "gradients/filter_type_1/concat_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/Reshape_1"
  input: "filter_type_1/Reshape_1"
  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: "filter_type_1/concat"
  op: "ConcatV2"
  input: "filter_type_1/Reshape_1"
  input: "filter_type_1/Reshape_1"
  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: "gradients/filter_type_1/add_1_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: "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: "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/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: "filter_type_1/add"
  op: "Add"
  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: "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: "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: "gradients/filter_type_1/add_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_1/Reshape_2"
  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: "filter_type_1/add_1"
  op: "Add"
  input: "filter_type_1/concat"
  input: "filter_type_1/Reshape_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/add_1"
  input: "filter_type_1/add_1"
  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: "filter_type_1/concat_1"
  op: "ConcatV2"
  input: "filter_type_1/add_1"
  input: "filter_type_1/add_1"
  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: "gradients/filter_type_1/add_3_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: "filter_type_1/MatMul_1"
  op: "MatMul"
  input: "filter_type_1/add_1"
  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: "gradients/filter_type_1/add_2_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_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: "filter_type_1/add_2"
  op: "Add"
  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_2"
  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: "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: "gradients/filter_type_1/add_3_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_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: "filter_type_1/add_3"
  op: "Add"
  input: "filter_type_1/concat_1"
  input: "filter_type_1/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_2_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_1/add_3"
  input: "filter_type_1/add_3"
  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_2_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_1/concat_2_grad/mod"
  input: "gradients/filter_type_1/concat_2_grad/ShapeN"
  input: "gradients/filter_type_1/concat_2_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "filter_type_1/concat_2"
  op: "ConcatV2"
  input: "filter_type_1/add_3"
  input: "filter_type_1/add_3"
  input: "filter_type_1/concat_2/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/add_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/concat_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/MatMul_2"
  op: "MatMul"
  input: "filter_type_1/add_3"
  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: "gradients/filter_type_1/add_4_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_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: "filter_type_1/add_4"
  op: "Add"
  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_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "gradients/filter_type_1/add_5_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_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: "filter_type_1/add_5"
  op: "Add"
  input: "filter_type_1/concat_2"
  input: "filter_type_1/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_5_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/Reshape_5"
  op: "Reshape"
  input: "filter_type_1/add_5"
  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/MatMul_3"
  op: "BatchMatMul"
  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: "gradients/filter_type_1/add_12_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_12_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_1/add_12_grad/Shape"
  input: "gradients/filter_type_1/add_12_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_1/add_12"
  op: "Add"
  input: "filter_type_1/MatMul_3"
  input: "filter_type_1/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/mul_grad/Shape"
  op: "Shape"
  input: "filter_type_1/add_12"
  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: "filter_type_1/mul"
  op: "Mul"
  input: "filter_type_1/add_12"
  input: "filter_type_1/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "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/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"
  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: "filter_type_1/MatMul_8"
  op: "BatchMatMul"
  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: "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: "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: "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: "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"
  op: "Shape"
  input: "Reshape_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_6"
  op: "StridedSlice"
  input: "Shape"
  input: "strided_slice_6/stack"
  input: "strided_slice_6/stack_1"
  input: "strided_slice_6/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_8/shape"
  op: "Pack"
  input: "strided_slice_6"
  input: "mul_4"
  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_6"
  input: "Slice/begin"
  input: "Slice/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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/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"
  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/Reshape_7_grad/Shape"
  op: "Shape"
  input: "Slice"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_7"
  op: "Reshape"
  input: "Slice"
  input: "Reshape_7/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_2_grad/Shape_1"
  op: "Shape"
  input: "Reshape_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Slice_grad/Shape_1"
  op: "Shape"
  input: "Reshape_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/Slice_2"
  op: "Slice"
  input: "Reshape_7"
  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: "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/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"
  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/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_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: "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/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: "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: "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: "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/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"
  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/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: "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: "gradients/filter_type_0/concat_3_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/Reshape_8"
  input: "filter_type_0/Reshape_8"
  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_3_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_0/concat_3_grad/mod"
  input: "gradients/filter_type_0/concat_3_grad/ShapeN"
  input: "gradients/filter_type_0/concat_3_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "filter_type_0/concat_3"
  op: "ConcatV2"
  input: "filter_type_0/Reshape_8"
  input: "filter_type_0/Reshape_8"
  input: "filter_type_0/concat_3/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
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: "gradients/filter_type_0/add_6_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_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: "filter_type_0/add_6"
  op: "Add"
  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_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "gradients/filter_type_0/add_7_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_9"
  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: "filter_type_0/add_7"
  op: "Add"
  input: "filter_type_0/concat_3"
  input: "filter_type_0/Reshape_9"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_4_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/add_7"
  input: "filter_type_0/add_7"
  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_4_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_0/concat_4_grad/mod"
  input: "gradients/filter_type_0/concat_4_grad/ShapeN"
  input: "gradients/filter_type_0/concat_4_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "filter_type_0/concat_4"
  op: "ConcatV2"
  input: "filter_type_0/add_7"
  input: "filter_type_0/add_7"
  input: "filter_type_0/concat_4/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/MatMul_5"
  op: "MatMul"
  input: "filter_type_0/add_7"
  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: "gradients/filter_type_0/add_8_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_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: "filter_type_0/add_8"
  op: "Add"
  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_8"
  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: "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: "gradients/filter_type_0/add_9_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_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: "filter_type_0/add_9"
  op: "Add"
  input: "filter_type_0/concat_4"
  input: "filter_type_0/Reshape_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_5_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/add_9"
  input: "filter_type_0/add_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_5_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_0/concat_5_grad/mod"
  input: "gradients/filter_type_0/concat_5_grad/ShapeN"
  input: "gradients/filter_type_0/concat_5_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "filter_type_0/concat_5"
  op: "ConcatV2"
  input: "filter_type_0/add_9"
  input: "filter_type_0/add_9"
  input: "filter_type_0/concat_5/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_11_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/MatMul_6"
  op: "MatMul"
  input: "filter_type_0/add_9"
  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: "gradients/filter_type_0/add_10_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_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: "filter_type_0/add_10"
  op: "Add"
  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_10"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "gradients/filter_type_0/add_11_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_11_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_11_grad/Shape"
  input: "gradients/filter_type_0/add_11_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/add_11"
  op: "Add"
  input: "filter_type_0/concat_5"
  input: "filter_type_0/Reshape_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_12_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_11"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/Reshape_12"
  op: "Reshape"
  input: "filter_type_0/add_11"
  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/MatMul_7"
  op: "BatchMatMul"
  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: "gradients/filter_type_0/add_12_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: "filter_type_0/Slice"
  op: "Slice"
  input: "Reshape_7"
  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: "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/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"
  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/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_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: "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/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: "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: "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: "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/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"
  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/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: "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: "gradients/filter_type_0/concat_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/Reshape_1"
  input: "filter_type_0/Reshape_1"
  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: "filter_type_0/concat"
  op: "ConcatV2"
  input: "filter_type_0/Reshape_1"
  input: "filter_type_0/Reshape_1"
  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: "gradients/filter_type_0/add_1_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: "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: "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/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: "filter_type_0/add"
  op: "Add"
  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: "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: "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: "gradients/filter_type_0/add_1_grad/Shape_1"
  op: "Shape"
  input: "filter_type_0/Reshape_2"
  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: "filter_type_0/add_1"
  op: "Add"
  input: "filter_type_0/concat"
  input: "filter_type_0/Reshape_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_1_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/add_1"
  input: "filter_type_0/add_1"
  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: "filter_type_0/concat_1"
  op: "ConcatV2"
  input: "filter_type_0/add_1"
  input: "filter_type_0/add_1"
  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: "gradients/filter_type_0/add_3_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: "filter_type_0/MatMul_1"
  op: "MatMul"
  input: "filter_type_0/add_1"
  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: "gradients/filter_type_0/add_2_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_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: "filter_type_0/add_2"
  op: "Add"
  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_2"
  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: "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: "gradients/filter_type_0/add_3_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_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: "filter_type_0/add_3"
  op: "Add"
  input: "filter_type_0/concat_1"
  input: "filter_type_0/Reshape_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_2_grad/ShapeN"
  op: "ShapeN"
  input: "filter_type_0/add_3"
  input: "filter_type_0/add_3"
  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_2_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/filter_type_0/concat_2_grad/mod"
  input: "gradients/filter_type_0/concat_2_grad/ShapeN"
  input: "gradients/filter_type_0/concat_2_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "filter_type_0/concat_2"
  op: "ConcatV2"
  input: "filter_type_0/add_3"
  input: "filter_type_0/add_3"
  input: "filter_type_0/concat_2/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/add_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/concat_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/MatMul_2"
  op: "MatMul"
  input: "filter_type_0/add_3"
  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: "gradients/filter_type_0/add_4_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_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: "filter_type_0/add_4"
  op: "Add"
  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_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "gradients/filter_type_0/add_5_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_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: "filter_type_0/add_5"
  op: "Add"
  input: "filter_type_0/concat_2"
  input: "filter_type_0/Reshape_4"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_5_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_5"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/Reshape_5"
  op: "Reshape"
  input: "filter_type_0/add_5"
  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/MatMul_3"
  op: "BatchMatMul"
  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: "gradients/filter_type_0/add_12_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_12_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/filter_type_0/add_12_grad/Shape"
  input: "gradients/filter_type_0/add_12_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "filter_type_0/add_12"
  op: "Add"
  input: "filter_type_0/MatMul_3"
  input: "filter_type_0/MatMul_7"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/Shape"
  op: "Shape"
  input: "filter_type_0/add_12"
  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: "filter_type_0/mul"
  op: "Mul"
  input: "filter_type_0/add_12"
  input: "filter_type_0/mul/y"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "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/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"
  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: "filter_type_0/MatMul_8"
  op: "BatchMatMul"
  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: "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: "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: "gradients/Reshape_8_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: "Reshape_8"
  op: "Reshape"
  input: "filter_type_0/Reshape_14"
  input: "Reshape_8/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_grad/ShapeN"
  op: "ShapeN"
  input: "Reshape_8"
  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: "concat"
  op: "ConcatV2"
  input: "Reshape_8"
  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: "o_descriptor"
  op: "Identity"
  input: "concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "gradients/Slice_3_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/Shape_1"
  op: "Shape"
  input: "Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Shape_5"
  op: "Shape"
  input: "Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_24"
  op: "StridedSlice"
  input: "Shape_5"
  input: "strided_slice_24/stack"
  input: "strided_slice_24/stack_1"
  input: "strided_slice_24/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_17/shape"
  op: "Pack"
  input: "strided_slice_24"
  input: "strided_slice_25"
  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_13"
  input: "Slice_3/begin"
  input: "Slice_3/size"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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/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"
  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/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: "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_1/MatMul"
  op: "MatMul"
  input: "Reshape_16"
  input: "layer_0_type_1/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: "gradients/layer_0_type_1/add_grad/Shape"
  op: "Shape"
  input: "layer_0_type_1/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_1/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_0_type_1/add_grad/Shape"
  input: "gradients/layer_0_type_1/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_0_type_1/add"
  op: "Add"
  input: "layer_0_type_1/MatMul"
  input: "layer_0_type_1/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_0_type_1/Tanh"
  op: "Tanh"
  input: "layer_0_type_1/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_0_type_1/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_0_type_1/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_0_type_1/Reshape"
  op: "Reshape"
  input: "layer_0_type_1/Tanh"
  input: "layer_0_type_1/Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_6_grad/Shape"
  op: "Shape"
  input: "layer_0_type_1/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_1_type_1/MatMul"
  op: "MatMul"
  input: "layer_0_type_1/Reshape"
  input: "layer_1_type_1/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: "gradients/layer_1_type_1/add_grad/Shape"
  op: "Shape"
  input: "layer_1_type_1/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_1/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_1_type_1/add_grad/Shape"
  input: "gradients/layer_1_type_1/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_1_type_1/add"
  op: "Add"
  input: "layer_1_type_1/MatMul"
  input: "layer_1_type_1/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_1_type_1/Tanh"
  op: "Tanh"
  input: "layer_1_type_1/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_1_type_1/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_1_type_1/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_1_type_1/Reshape"
  op: "Reshape"
  input: "layer_1_type_1/Tanh"
  input: "layer_1_type_1/Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_1/mul_grad/Shape"
  op: "Shape"
  input: "layer_1_type_1/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_1/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_1_type_1/mul_grad/Shape"
  input: "gradients/layer_1_type_1/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_1_type_1/mul"
  op: "Mul"
  input: "layer_1_type_1/Reshape"
  input: "layer_1_type_1/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/add_6_grad/Shape_1"
  op: "Shape"
  input: "layer_1_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_6_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/add_6_grad/Shape"
  input: "gradients/add_6_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "add_6"
  op: "Add"
  input: "layer_0_type_1/Reshape"
  input: "layer_1_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/add_7_grad/Shape"
  op: "Shape"
  input: "add_6"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_2_type_1/MatMul"
  op: "MatMul"
  input: "add_6"
  input: "layer_2_type_1/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: "gradients/layer_2_type_1/add_grad/Shape"
  op: "Shape"
  input: "layer_2_type_1/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_1/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_2_type_1/add_grad/Shape"
  input: "gradients/layer_2_type_1/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_2_type_1/add"
  op: "Add"
  input: "layer_2_type_1/MatMul"
  input: "layer_2_type_1/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "layer_2_type_1/Tanh"
  op: "Tanh"
  input: "layer_2_type_1/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_2_type_1/Reshape_grad/Shape"
  op: "Shape"
  input: "layer_2_type_1/Tanh"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_2_type_1/Reshape"
  op: "Reshape"
  input: "layer_2_type_1/Tanh"
  input: "layer_2_type_1/Reshape/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_1/mul_grad/Shape"
  op: "Shape"
  input: "layer_2_type_1/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_1/mul_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/layer_2_type_1/mul_grad/Shape"
  input: "gradients/layer_2_type_1/mul_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_2_type_1/mul"
  op: "Mul"
  input: "layer_2_type_1/Reshape"
  input: "layer_2_type_1/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/add_7_grad/Shape_1"
  op: "Shape"
  input: "layer_2_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/add_7_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/add_7_grad/Shape"
  input: "gradients/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "add_7"
  op: "Add"
  input: "add_6"
  input: "layer_2_type_1/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "final_layer_type_1/MatMul"
  op: "MatMul"
  input: "add_7"
  input: "final_layer_type_1/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: "gradients/final_layer_type_1/add_grad/Shape"
  op: "Shape"
  input: "final_layer_type_1/MatMul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/final_layer_type_1/add_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/final_layer_type_1/add_grad/Shape"
  input: "gradients/final_layer_type_1/add_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "final_layer_type_1/add"
  op: "Add"
  input: "final_layer_type_1/MatMul"
  input: "final_layer_type_1/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/Reshape_17_grad/Shape"
  op: "Shape"
  input: "final_layer_type_1/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_17"
  op: "Reshape"
  input: "final_layer_type_1/add"
  input: "Reshape_17/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Shape_4"
  op: "Shape"
  input: "Reshape_13"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "strided_slice_20"
  op: "StridedSlice"
  input: "Shape_4"
  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: "Reshape_15/shape"
  op: "Pack"
  input: "strided_slice_20"
  input: "strided_slice_21"
  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: "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/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"
  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/Reshape_14_grad/Shape"
  op: "Shape"
  input: "Slice_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_14"
  op: "Reshape"
  input: "Slice_2"
  input: "Reshape_14/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_0_type_0/MatMul"
  op: "MatMul"
  input: "Reshape_14"
  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: "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/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: "layer_0_type_0/add"
  op: "Add"
  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: "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: "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: "gradients/add_3_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: "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: "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/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: "layer_1_type_0/add"
  op: "Add"
  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/Tanh"
  op: "Tanh"
  input: "layer_1_type_0/add"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
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: "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: "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/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: "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: "gradients/add_3_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_3_grad/BroadcastGradientArgs"
  op: "BroadcastGradientArgs"
  input: "gradients/add_3_grad/Shape"
  input: "gradients/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "add_3"
  op: "Add"
  input: "layer_0_type_0/Reshape"
  input: "layer_1_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/add_4_grad/Shape"
  op: "Shape"
  input: "add_3"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "layer_2_type_0/MatMul"
  op: "MatMul"
  input: "add_3"
  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: "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/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: "layer_2_type_0/add"
  op: "Add"
  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/Tanh"
  op: "Tanh"
  input: "layer_2_type_0/add"
  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: "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: "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/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: "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: "gradients/add_4_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_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: "add_4"
  op: "Add"
  input: "add_3"
  input: "layer_2_type_0/mul"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "final_layer_type_0/MatMul"
  op: "MatMul"
  input: "add_4"
  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: "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/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: "final_layer_type_0/add"
  op: "Add"
  input: "final_layer_type_0/MatMul"
  input: "final_layer_type_0/bias/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/Reshape_15_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: "Reshape_15"
  op: "Reshape"
  input: "final_layer_type_0/add"
  input: "Reshape_15/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_2_grad/ShapeN"
  op: "ShapeN"
  input: "Reshape_15"
  input: "Reshape_17"
  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_2_grad/ConcatOffset"
  op: "ConcatOffset"
  input: "gradients/concat_2_grad/mod"
  input: "gradients/concat_2_grad/ShapeN"
  input: "gradients/concat_2_grad/ShapeN:1"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
}
node {
  name: "concat_2"
  op: "ConcatV2"
  input: "Reshape_15"
  input: "Reshape_17"
  input: "concat_2/axis"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_18_grad/Shape"
  op: "Shape"
  input: "concat_2"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_18"
  op: "Reshape"
  input: "concat_2"
  input: "Reshape_18/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Shape"
  op: "Shape"
  input: "Reshape_18"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "out_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Fill"
  op: "Fill"
  input: "gradients/Shape"
  input: "gradients/grad_ys_0"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "index_type"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Reshape_18_grad/Reshape"
  op: "Reshape"
  input: "gradients/Fill"
  input: "gradients/Reshape_18_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/concat_2_grad/Slice_1"
  op: "Slice"
  input: "gradients/Reshape_18_grad/Reshape"
  input: "gradients/concat_2_grad/ConcatOffset:1"
  input: "gradients/concat_2_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/Reshape_17_grad/Reshape"
  op: "Reshape"
  input: "gradients/concat_2_grad/Slice_1"
  input: "gradients/Reshape_17_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/final_layer_type_1/add_grad/Sum"
  op: "Sum"
  input: "gradients/Reshape_17_grad/Reshape"
  input: "gradients/final_layer_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/final_layer_type_1/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/final_layer_type_1/add_grad/Sum"
  input: "gradients/final_layer_type_1/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/final_layer_type_1/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/final_layer_type_1/add_grad/Reshape"
  input: "final_layer_type_1/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/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients/final_layer_type_1/MatMul_grad/MatMul"
  input: "gradients/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/add_7_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/add_7_grad/Sum_1"
  input: "gradients/add_7_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_1/mul_grad/Mul"
  op: "Mul"
  input: "gradients/add_7_grad/Reshape_1"
  input: "layer_2_type_1/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_2_type_1/mul_grad/Sum"
  op: "Sum"
  input: "gradients/layer_2_type_1/mul_grad/Mul"
  input: "gradients/layer_2_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/layer_2_type_1/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_2_type_1/mul_grad/Sum"
  input: "gradients/layer_2_type_1/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_1/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_2_type_1/mul_grad/Reshape"
  input: "gradients/layer_2_type_1/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_1/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_2_type_1/Tanh"
  input: "gradients/layer_2_type_1/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_2_type_1/add_grad/Sum"
  op: "Sum"
  input: "gradients/layer_2_type_1/Tanh_grad/TanhGrad"
  input: "gradients/layer_2_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/layer_2_type_1/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_2_type_1/add_grad/Sum"
  input: "gradients/layer_2_type_1/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_2_type_1/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/layer_2_type_1/add_grad/Reshape"
  input: "layer_2_type_1/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/add_7_grad/Sum"
  op: "Sum"
  input: "gradients/final_layer_type_1/MatMul_grad/MatMul"
  input: "gradients/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/add_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/add_7_grad/Sum"
  input: "gradients/add_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_1"
  op: "AddN"
  input: "gradients/add_7_grad/Reshape"
  input: "gradients/layer_2_type_1/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_7_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/add_6_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_1"
  input: "gradients/add_6_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_6_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/add_6_grad/Sum_1"
  input: "gradients/add_6_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_1/mul_grad/Mul"
  op: "Mul"
  input: "gradients/add_6_grad/Reshape_1"
  input: "layer_1_type_1/idt/read"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_1_type_1/mul_grad/Sum"
  op: "Sum"
  input: "gradients/layer_1_type_1/mul_grad/Mul"
  input: "gradients/layer_1_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/layer_1_type_1/mul_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_1_type_1/mul_grad/Sum"
  input: "gradients/layer_1_type_1/mul_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_1/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_1_type_1/mul_grad/Reshape"
  input: "gradients/layer_1_type_1/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_1/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_1_type_1/Tanh"
  input: "gradients/layer_1_type_1/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_1_type_1/add_grad/Sum"
  op: "Sum"
  input: "gradients/layer_1_type_1/Tanh_grad/TanhGrad"
  input: "gradients/layer_1_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/layer_1_type_1/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_1_type_1/add_grad/Sum"
  input: "gradients/layer_1_type_1/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_1_type_1/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/layer_1_type_1/add_grad/Reshape"
  input: "layer_1_type_1/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/add_6_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_1"
  input: "gradients/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/add_6_grad/Reshape"
  op: "Reshape"
  input: "gradients/add_6_grad/Sum"
  input: "gradients/add_6_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/add_6_grad/Reshape"
  input: "gradients/layer_1_type_1/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_6_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/layer_0_type_1/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_3"
  input: "gradients/layer_0_type_1/Reshape_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_1/Tanh_grad/TanhGrad"
  op: "TanhGrad"
  input: "layer_0_type_1/Tanh"
  input: "gradients/layer_0_type_1/Reshape_grad/Reshape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/layer_0_type_1/add_grad/Sum"
  op: "Sum"
  input: "gradients/layer_0_type_1/Tanh_grad/TanhGrad"
  input: "gradients/layer_0_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/layer_0_type_1/add_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_0_type_1/add_grad/Sum"
  input: "gradients/layer_0_type_1/add_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/layer_0_type_1/MatMul_grad/MatMul"
  op: "MatMul"
  input: "gradients/layer_0_type_1/add_grad/Reshape"
  input: "layer_0_type_1/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_16_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_0_type_1/MatMul_grad/MatMul"
  input: "gradients/Reshape_16_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    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/concat_2_grad/Slice"
  op: "Slice"
  input: "gradients/Reshape_18_grad/Reshape"
  input: "gradients/concat_2_grad/ConcatOffset"
  input: "gradients/concat_2_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/Reshape_15_grad/Reshape"
  op: "Reshape"
  input: "gradients/concat_2_grad/Slice"
  input: "gradients/Reshape_15_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/Sum"
  op: "Sum"
  input: "gradients/Reshape_15_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/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/add_4_grad/Sum_1"
  op: "Sum"
  input: "gradients/final_layer_type_0/MatMul_grad/MatMul"
  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_2_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients/add_4_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/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/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/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/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/add_4_grad/Sum"
  op: "Sum"
  input: "gradients/final_layer_type_0/MatMul_grad/MatMul"
  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/AddN"
  op: "AddN"
  input: "gradients/add_4_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_4_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/add_3_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN"
  input: "gradients/add_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/add_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/add_3_grad/Sum_1"
  input: "gradients/add_3_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/Mul"
  op: "Mul"
  input: "gradients/add_3_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/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/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/add_3_grad/Sum"
  op: "Sum"
  input: "gradients/AddN"
  input: "gradients/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/add_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/add_3_grad/Sum"
  input: "gradients/add_3_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_2"
  op: "AddN"
  input: "gradients/add_3_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_3_grad/Reshape"
      }
    }
  }
}
node {
  name: "gradients/layer_0_type_0/Reshape_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_2"
  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/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_14_grad/Reshape"
  op: "Reshape"
  input: "gradients/layer_0_type_0/MatMul_grad/MatMul"
  input: "gradients/Reshape_14_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_2_grad/Pad"
  op: "Pad"
  input: "gradients/Reshape_14_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/AddN_4"
  op: "AddN"
  input: "gradients/Slice_2_grad/Pad"
  input: "gradients/Slice_3_grad/Pad"
  attr {
    key: "N"
    value {
      i: 2
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "_class"
    value {
      list {
        s: "loc:@gradients/Slice_2_grad/Pad"
      }
    }
  }
}
node {
  name: "gradients/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_4"
  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/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_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_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_1/MatMul_8_grad/MatMul_1"
  op: "BatchMatMul"
  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/Slice_4_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_1/MatMul_8_grad/MatMul_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/filter_type_1/MatMul_8_grad/MatMul"
  op: "BatchMatMul"
  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/AddN_6"
  op: "AddN"
  input: "gradients/filter_type_1/MatMul_8_grad/MatMul"
  input: "gradients/filter_type_1/Slice_4_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/MatMul_8_grad/MatMul"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/mul_grad/Mul"
  op: "Mul"
  input: "gradients/AddN_6"
  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_1/add_12_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/mul_grad/Reshape"
  input: "gradients/filter_type_1/add_12_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_12_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_12_grad/Sum_1"
  input: "gradients/filter_type_1/add_12_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_1"
  op: "BatchMatMul"
  input: "filter_type_1/Reshape_13"
  input: "gradients/filter_type_1/add_12_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/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_7_grad/MatMul_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_1/add_11_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_1/add_11_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_11_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_11_grad/Sum_1"
  input: "gradients/filter_type_1/add_11_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_11_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_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_1/add_10_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_5_grad/TanhGrad"
  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/MatMul_6_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_10_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/filter_type_1/add_11_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_1/add_11_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_11_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_11_grad/Sum"
  input: "gradients/filter_type_1/add_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_5_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_1/add_11_grad/Reshape"
  input: "gradients/filter_type_1/concat_5_grad/ConcatOffset:1"
  input: "gradients/filter_type_1/concat_5_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_5_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_1/add_11_grad/Reshape"
  input: "gradients/filter_type_1/concat_5_grad/ConcatOffset"
  input: "gradients/filter_type_1/concat_5_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/AddN_10"
  op: "AddN"
  input: "gradients/filter_type_1/concat_5_grad/Slice"
  input: "gradients/filter_type_1/concat_5_grad/Slice_1"
  input: "gradients/filter_type_1/MatMul_6_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_5_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_9_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_10"
  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_1/Reshape_10_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_9_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_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_1/add_8_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_4_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_1/MatMul_5_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_8_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/filter_type_1/add_9_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_10"
  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/concat_4_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_1/add_9_grad/Reshape"
  input: "gradients/filter_type_1/concat_4_grad/ConcatOffset:1"
  input: "gradients/filter_type_1/concat_4_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_4_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_1/add_9_grad/Reshape"
  input: "gradients/filter_type_1/concat_4_grad/ConcatOffset"
  input: "gradients/filter_type_1/concat_4_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/AddN_14"
  op: "AddN"
  input: "gradients/filter_type_1/concat_4_grad/Slice"
  input: "gradients/filter_type_1/concat_4_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_4_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_14"
  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_1/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_7_grad/Reshape_1"
  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_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_1/add_6_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_3_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_1/MatMul_4_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_6_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_1/add_7_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_14"
  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/concat_3_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_1/add_7_grad/Reshape"
  input: "gradients/filter_type_1/concat_3_grad/ConcatOffset:1"
  input: "gradients/filter_type_1/concat_3_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_3_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_1/add_7_grad/Reshape"
  input: "gradients/filter_type_1/concat_3_grad/ConcatOffset"
  input: "gradients/filter_type_1/concat_3_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/AddN_18"
  op: "AddN"
  input: "gradients/filter_type_1/concat_3_grad/Slice"
  input: "gradients/filter_type_1/concat_3_grad/Slice_1"
  input: "gradients/filter_type_1/MatMul_4_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_3_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_18"
  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_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_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/filter_type_1/MatMul_7_grad/MatMul"
  op: "BatchMatMul"
  input: "filter_type_1/Reshape_12"
  input: "gradients/filter_type_1/add_12_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/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_7_grad/MatMul"
  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/AddN_22"
  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/Pad"
  op: "Pad"
  input: "gradients/AddN_22"
  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/filter_type_1/add_12_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/mul_grad/Reshape"
  input: "gradients/filter_type_1/add_12_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_12_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_12_grad/Sum"
  input: "gradients/filter_type_1/add_12_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/MatMul_1"
  op: "BatchMatMul"
  input: "filter_type_1/Reshape_6"
  input: "gradients/filter_type_1/add_12_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/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_3_grad/MatMul_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/add_5_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_1/Reshape_5_grad/Reshape"
  input: "gradients/filter_type_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/filter_type_1/add_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_5_grad/Sum_1"
  input: "gradients/filter_type_1/add_5_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_4_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_5_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/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/add_4_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_2_grad/TanhGrad"
  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/MatMul_2_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_4_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/add_5_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Reshape_5_grad/Reshape"
  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_1/concat_2_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_1/add_5_grad/Reshape"
  input: "gradients/filter_type_1/concat_2_grad/ConcatOffset:1"
  input: "gradients/filter_type_1/concat_2_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_1/concat_2_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_1/add_5_grad/Reshape"
  input: "gradients/filter_type_1/concat_2_grad/ConcatOffset"
  input: "gradients/filter_type_1/concat_2_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/AddN_9"
  op: "AddN"
  input: "gradients/filter_type_1/concat_2_grad/Slice"
  input: "gradients/filter_type_1/concat_2_grad/Slice_1"
  input: "gradients/filter_type_1/MatMul_2_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_2_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_3_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_9"
  input: "gradients/filter_type_1/add_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/add_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_3_grad/Sum_1"
  input: "gradients/filter_type_1/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_3_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/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/add_2_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_1/Tanh_1_grad/TanhGrad"
  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/MatMul_1_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_1/add_2_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/add_3_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_9"
  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/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_1/add_3_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/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_1/add_3_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/AddN_13"
  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_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_1_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_1/add_1_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_13"
  input: "gradients/filter_type_1/add_1_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_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_1/add_1_grad/Sum_1"
  input: "gradients/filter_type_1/add_1_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_1/Reshape_2_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/add_1_grad/Reshape_1"
  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/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/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/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/add_1_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_13"
  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/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_1/add_1_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/concat_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_1/add_1_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/AddN_17"
  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_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_1_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_17"
  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/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/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/MatMul_3_grad/MatMul"
  op: "BatchMatMul"
  input: "filter_type_1/Reshape_5"
  input: "gradients/filter_type_1/add_12_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/Reshape_6_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_1/MatMul_3_grad/MatMul"
  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/AddN_21"
  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/Pad"
  op: "Pad"
  input: "gradients/AddN_21"
  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_24"
  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_10_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_24"
  input: "gradients/Reshape_10_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_1_grad/Pad"
  op: "Pad"
  input: "gradients/Reshape_10_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/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/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/concat_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/filter_type_0/Reshape_14_grad/Reshape"
  op: "Reshape"
  input: "gradients/Reshape_8_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_0/MatMul_8_grad/MatMul_1"
  op: "BatchMatMul"
  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/Slice_4_grad/Pad"
  op: "Pad"
  input: "gradients/filter_type_0/MatMul_8_grad/MatMul_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_0/MatMul_8_grad/MatMul"
  op: "BatchMatMul"
  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/AddN_5"
  op: "AddN"
  input: "gradients/filter_type_0/MatMul_8_grad/MatMul"
  input: "gradients/filter_type_0/Slice_4_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/MatMul_8_grad/MatMul"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/mul_grad/Mul"
  op: "Mul"
  input: "gradients/AddN_5"
  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/filter_type_0/add_12_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/mul_grad/Reshape"
  input: "gradients/filter_type_0/add_12_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_12_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_12_grad/Sum_1"
  input: "gradients/filter_type_0/add_12_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_1"
  op: "BatchMatMul"
  input: "filter_type_0/Reshape_13"
  input: "gradients/filter_type_0/add_12_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/Reshape_12_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_7_grad/MatMul_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_0/add_11_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_0/add_11_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_11_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_11_grad/Sum_1"
  input: "gradients/filter_type_0/add_11_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_11_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_11_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_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_0/add_10_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_5_grad/TanhGrad"
  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/MatMul_6_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_10_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_0/add_11_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Reshape_12_grad/Reshape"
  input: "gradients/filter_type_0/add_11_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_11_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_11_grad/Sum"
  input: "gradients/filter_type_0/add_11_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_5_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_0/add_11_grad/Reshape"
  input: "gradients/filter_type_0/concat_5_grad/ConcatOffset:1"
  input: "gradients/filter_type_0/concat_5_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_5_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_0/add_11_grad/Reshape"
  input: "gradients/filter_type_0/concat_5_grad/ConcatOffset"
  input: "gradients/filter_type_0/concat_5_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/AddN_8"
  op: "AddN"
  input: "gradients/filter_type_0/concat_5_grad/Slice"
  input: "gradients/filter_type_0/concat_5_grad/Slice_1"
  input: "gradients/filter_type_0/MatMul_6_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_5_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_9_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_8"
  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_0/Reshape_10_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_9_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_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_0/add_8_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_4_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_0/MatMul_5_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_8_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_0/add_9_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_8"
  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/concat_4_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_0/add_9_grad/Reshape"
  input: "gradients/filter_type_0/concat_4_grad/ConcatOffset:1"
  input: "gradients/filter_type_0/concat_4_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_4_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_0/add_9_grad/Reshape"
  input: "gradients/filter_type_0/concat_4_grad/ConcatOffset"
  input: "gradients/filter_type_0/concat_4_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/AddN_12"
  op: "AddN"
  input: "gradients/filter_type_0/concat_4_grad/Slice"
  input: "gradients/filter_type_0/concat_4_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_4_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_7_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_12"
  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/filter_type_0/Reshape_9_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_7_grad/Reshape_1"
  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/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_0/add_6_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_3_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_0/MatMul_4_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_6_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_0/add_7_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_12"
  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/concat_3_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_0/add_7_grad/Reshape"
  input: "gradients/filter_type_0/concat_3_grad/ConcatOffset:1"
  input: "gradients/filter_type_0/concat_3_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_3_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_0/add_7_grad/Reshape"
  input: "gradients/filter_type_0/concat_3_grad/ConcatOffset"
  input: "gradients/filter_type_0/concat_3_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/AddN_16"
  op: "AddN"
  input: "gradients/filter_type_0/concat_3_grad/Slice"
  input: "gradients/filter_type_0/concat_3_grad/Slice_1"
  input: "gradients/filter_type_0/MatMul_4_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_3_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_8_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_16"
  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_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_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_0/MatMul_7_grad/MatMul"
  op: "BatchMatMul"
  input: "filter_type_0/Reshape_12"
  input: "gradients/filter_type_0/add_12_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/Reshape_13_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_7_grad/MatMul"
  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/AddN_20"
  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/Pad"
  op: "Pad"
  input: "gradients/AddN_20"
  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/filter_type_0/add_12_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/mul_grad/Reshape"
  input: "gradients/filter_type_0/add_12_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_12_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_12_grad/Sum"
  input: "gradients/filter_type_0/add_12_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/MatMul_1"
  op: "BatchMatMul"
  input: "filter_type_0/Reshape_6"
  input: "gradients/filter_type_0/add_12_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/Reshape_5_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_3_grad/MatMul_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/add_5_grad/Sum_1"
  op: "Sum"
  input: "gradients/filter_type_0/Reshape_5_grad/Reshape"
  input: "gradients/filter_type_0/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/filter_type_0/add_5_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_5_grad/Sum_1"
  input: "gradients/filter_type_0/add_5_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/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_5_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/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/add_4_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_2_grad/TanhGrad"
  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/MatMul_2_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_4_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/add_5_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Reshape_5_grad/Reshape"
  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_0/concat_2_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_0/add_5_grad/Reshape"
  input: "gradients/filter_type_0/concat_2_grad/ConcatOffset:1"
  input: "gradients/filter_type_0/concat_2_grad/ShapeN:1"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/filter_type_0/concat_2_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_0/add_5_grad/Reshape"
  input: "gradients/filter_type_0/concat_2_grad/ConcatOffset"
  input: "gradients/filter_type_0/concat_2_grad/ShapeN"
  attr {
    key: "Index"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
}
node {
  name: "gradients/AddN_7"
  op: "AddN"
  input: "gradients/filter_type_0/concat_2_grad/Slice"
  input: "gradients/filter_type_0/concat_2_grad/Slice_1"
  input: "gradients/filter_type_0/MatMul_2_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_2_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_3_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_7"
  input: "gradients/filter_type_0/add_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/add_3_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_3_grad/Sum_1"
  input: "gradients/filter_type_0/add_3_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_3_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_3_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/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/add_2_grad/Sum"
  op: "Sum"
  input: "gradients/filter_type_0/Tanh_1_grad/TanhGrad"
  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/MatMul_1_grad/MatMul"
  op: "MatMul"
  input: "gradients/filter_type_0/add_2_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/add_3_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_7"
  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/concat_1_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_0/add_3_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/concat_1_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_0/add_3_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/AddN_11"
  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_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_1_grad/Slice"
      }
    }
  }
}
node {
  name: "gradients/filter_type_0/add_1_grad/Sum_1"
  op: "Sum"
  input: "gradients/AddN_11"
  input: "gradients/filter_type_0/add_1_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_1_grad/Reshape_1"
  op: "Reshape"
  input: "gradients/filter_type_0/add_1_grad/Sum_1"
  input: "gradients/filter_type_0/add_1_grad/Shape_1"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/filter_type_0/Reshape_2_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/add_1_grad/Reshape_1"
  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/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/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/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/add_1_grad/Sum"
  op: "Sum"
  input: "gradients/AddN_11"
  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/concat_grad/Slice_1"
  op: "Slice"
  input: "gradients/filter_type_0/add_1_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/concat_grad/Slice"
  op: "Slice"
  input: "gradients/filter_type_0/add_1_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/AddN_15"
  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_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_1_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_15"
  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/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/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/MatMul_3_grad/MatMul"
  op: "BatchMatMul"
  input: "filter_type_0/Reshape_5"
  input: "gradients/filter_type_0/add_12_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/Reshape_6_grad/Reshape"
  op: "Reshape"
  input: "gradients/filter_type_0/MatMul_3_grad/MatMul"
  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/AddN_19"
  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/Pad"
  op: "Pad"
  input: "gradients/AddN_19"
  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_23"
  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_7_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_23"
  input: "gradients/Reshape_7_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/Slice_grad/Pad"
  op: "Pad"
  input: "gradients/Reshape_7_grad/Reshape"
  input: "gradients/Slice_grad/concat"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tpaddings"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "gradients/AddN_25"
  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_6_grad/Reshape"
  op: "Reshape"
  input: "gradients/AddN_25"
  input: "gradients/Reshape_6_grad/Shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "Reshape_19"
  op: "Reshape"
  input: "gradients/Reshape_6_grad/Reshape"
  input: "Reshape_19/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "ProdVirialSeA"
  op: "ProdVirialSeA"
  input: "Reshape_19"
  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: "o_atom_virial"
  op: "Reshape"
  input: "ProdVirialSeA:1"
  input: "o_atom_virial/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_virial"
  op: "Reshape"
  input: "ProdVirialSeA"
  input: "o_virial/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "ProdForceSeA"
  op: "ProdForceSeA"
  input: "Reshape_19"
  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: "o_force"
  op: "Reshape"
  input: "ProdForceSeA"
  input: "o_force/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_atom_energy"
  op: "Reshape"
  input: "Reshape_18"
  input: "o_atom_energy/shape"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tshape"
    value {
      type: DT_INT32
    }
  }
}
node {
  name: "o_energy"
  op: "Sum"
  input: "o_atom_energy"
  input: "o_energy/reduction_indices"
  attr {
    key: "T"
    value {
      type: DT_DOUBLE
    }
  }
  attr {
    key: "Tidx"
    value {
      type: DT_INT32
    }
  }
  attr {
    key: "keep_dims"
    value {
      b: false
    }
  }
}
library {
}
