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.9132831671284
      }
    }
  }
}
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: "\310\021\257\314\217b\265?\323 \344\347L)\300\277\325\212\340\032W\340\323\277\017\372\236\252A\302\270\277\362\357\034\371\252\310\346?\3156\213\036\266\321\302\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: "\241\t<\031-\022\273?\343\001\r\351r\353\272?\232\273.u%%\267?0\351\227R\207\257\266?\321`*\303\221\206\267?o \245v\336\221\267?"
      }
    }
  }
}
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: "\200\370\345\"Y\274\315?W*\222\025\030\343\325\277\024\372\001\313_\374\352\277Y\252\275\307\017\235\317\277\226qA\227\337\255\376?4\251\nX\230\355\326\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: "\001\t\032?M\257\257?>d\364\326L\375\267\277\2460\nX\260\344\315\277\347F\240\003\251\346\257\277E\343\327\304Rf\341?\\DD+\032/\271\277\217\027I..a\274?\rg*7B\024\340\277\245\366\252[\032=\307?\023vf\230\353\300\314\277P\346\353m]0\254?\362\266\301k\363%\323\277\332L\277\270ET\232?q\036\332TQ\306\333?\355\323\000\215j9\313?\010\212\203\212\317\370\300\277l\260t\001\210\352\322\277\273\274Td\324]\346?\344\177\277qbl\271\277g\223\367\"ZP\303?{\306EZAI\312?\030r\242\343\007\342\306?\321.\250\366\316\326\253?\\{n\351\363\203\271\277Xpe0\261\262\300\277\002\377Ms\001\372\260?Q@\271\207nlp?\227\213\345\017\330\030\343\277=\202\020\"v\211\323\277\374\031\201\231n\252\301\277\271\"y\357f\037\317\277\322?A\307\345 \302\277}\236\306I\014\260\243\277\023\365(\030| \323\277\'^\304[\263\305\316\277882\000C1\264\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: "\022\360K\230\252D\273?^\205p\234\236\013\273?\2325\261\341N(\267?\217\243t\024~\261\266?3\000\311|J\211\267? w\222*\237\240\267?"
      }
    }
  }
}
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: "t@\177\254\357@\316?\\\220=\222\321\341\325\277SJ\244\336\'\374\352\277\\\004\324\334X\241\317\277\262k\3218\352\255\376?\327G(\017E\353\326\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: "\034CS\300\026\274\257?\226\035\256\225[\377\267\277YS\0141$\345\315\277\24174\257=\352\257\277\255\245\263\2149f\341?O\002p\301\3270\271\277/\200\352\3216h\274?<\321\367K\031\024\340\277\333\\?\272f=\307?W8\306m\220\300\314\277\255\305m\212#2\254?.\261\354\031\357%\323\277\240\364U\214>d\233?\217\330T\363S\317\333?\200bz\355Q;\313?\252-\321\317\302\362\300\277\333\357\343qk\352\322\277\014L\207\014i`\346?m\007\356\2708\252\272\277\0069H2ae\303?X\346m\336\271I\312?\236\252E\272q\346\306?\356\351\257&5\324\253?\r\315\2614\017W\271\277/\355\235A0\303\300\277\364\n\312\273@\375\260?5\316\2015\216yp?\251\263\3471N\031\343\277e\342\361\202\031\211\323\277\007\313DO\263\246\301\277\205\215u\343\252#\317\277\274Mic/!\302\277\022X)R\337\261\243\277\226\020\314\271\262 \323\277c\335\346k\322\305\316\277\224\007\200}\0261\264\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: "\rD#\222\262\026\316?\007\016&\n\343\022\326\277\r\263\217T\360\207\352\277w6\265i\314\n\316\277\007\025\035\370G\254\376?\246\306$\233\201\021\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: "\375\251\231\317\304\274\250?\313\233\374\3757\370\250\277\336\271\257\310\304e\300\277\364\251\026&\230N\237\277\002\334L\223qM\324?)g3k\317\356\251\277\2215\235\216/>\261?\355\366K^]F\321\277$\340D\255\265 \275?\202\320\032\2077\001\275\277bi\026\204\372r\241?\346\207\220\265w\324\303\277\253s\351\333x\346\225?:<D\323XR\320?\237\323\371[\\\306\300?u\225\326\373\366\323\257\277L\300K\216\007\330\304\277%\033\237EA\351\331?\206\025\251\264\260\002\250\277\037x\"\325\231j\267?\351,\274Z\010v\276?:[\013\2301\020\273?\021\214\007\352\227\232\245?f\321\324\246\337\257\260\277F\323\335\003\332:\256\277;%\213\363\037\247\244?\333h\016\302\352\320\213?\311\323\014\206\322B\325\277%\004\213\271k\215\305\277+\237\005im\341\262\277\367!Z\326\272\247\277\277\370\00215\222C\263\277V\034\242\366\037\307\222\277\201\312<\014K\350\304\277\225rW4\352\232\277\277B0Kg\203+\244\277$\375\017\003\357\030\307?\233~\353\245_\227\251?\204t\213\003\244 ~\277\000\325<W\314\033\277\277)\275\014`\242@\271\277\252\313/\311Z\'\324?\337\374\025\314e\312\310\277^\016\223 hs\247\277(\240\023\265sL\277?wE\320\211\230\363\265\277SLZ\'\364i\313\277\345E-\017\243\010\221\277O\273\352+\034[\243?\377\361\246\254;\356\310?\225\224\021\'?\267\250\277\216\345\346\303\204[\252\277]\265|\211\370\000\323?+\346\'\306C\220\227\277\310S\373G\367o\330\277\251\202I\276$&\270?]\rc\344\311}\240?\201?I\367G\223\253\277\t\3431\241\230H~?\341i\220\210\331\r\214?\342\235\274\317*{\307?\n\022\023j\2311\226?w\266%8\3463\312\2776G\313\273\024\275\253?\375\366\227\377\021\353\266\277)L\322A\236T\220?\002B\362\237K\214\264\277\327_\257u\205.\317?\317V~R\037\312\244?\365\300A\325r\313\325?Zw\364A8\270\206\277\0305hED\351\211?\306\325\3528\202\343\255\277lpF^\3609\266\277l\237I)\037\305\305?eK-\215\222\363\240?F\264\254(\332\337\316\277\236\322\265\025\006!\314\277Z\221N\254\'P\315?\333\243\242\323\2150\304?\253\010\261\334GL\304?\247\275\305\204\330i\223?\235\231\264\355\247\244\264\277\346p\264\377\311a\300\277\316H\215\0204\376\302\277\006G.\027V\221\330?A\334\2042\262^\273?\r4\373\304K\025\246?ou\375\271X\003\325?\353\272\ra\215I\316?)\336O`\300\302\300\277\317\341\321&\300\372\300\277$\343\211\323\267\305\247\277\\\341;\210\016\246\235?\322\256\377\237G\207\234\277\177]c\017\200F\305\27728\211\366\221\305M?\254\244/\235\275\243\305?03d\256ra\313?C\320{\236\332\233\304\277\373\254\261\364\223\204\264\277\247\224\354\2151?\306\277\215DW\2416\032\272?[ETk\344\243\250?\356\351\300\261\353\336{?n\030{\351t\020\275\277\2513\226\250\331\275\303?\375\331\2709\310\240\313\277{&\210@@\375\266\277\232**\314y\037\321?\237\036BY\375\005\307?\020\246\332\347\334\246\230?\004|\330/\322\313\263?|y\240\256?\237\301?\345\377\311\010\371\226\307\277\236A\353\211\341k\323\277u\017F\201\177\344\242\277d\0022\\\224\230\236\277\315^k\270\247\276\266\277g^\344]\267\330\300\277e\031\360\252{3\274?\023|\251E\220\234\262\277~\325|J\251\376\275?\311\013\305w3N\231\277J,f\365\022\216\310?]\347\332\362\032\274\267?;x\245\370\244[\234\277\t\2563\035\221Q\301?\227\0346\033P\220\244\277\277\ny\273\270\215\246\277\020s,\303^3\244\277u[\252-l\343\247\277\335\251E5\325S\267? _\227)\232]\247\277c-\326\334\264\231\267\277\262\271\005\215\202\365\254?\2114K\034Z\207\322\277|\373\316\300I\323\264\277\231z\006\360\276K\314\277\026{ \261y^\234\277V{\000s\020F\305?\352Vz\347\244\220\312?s\212[:\221\000\316\277\321\314\207\304P\361\313?c\001v\201\\B\220?\363,\305HU\013\222\277{me\300\321o\301?W\0218\245\326c\246\277\322\242\000\210\215\245s\277\032\216^A9V\271\277\\\340\335,*\333\224?\251U]\270\010\363\233\277\315\341\346\230\220\336\314?i}\007\024,\177\303?\037\254\374HS\324\315\2770\256\210\211\"FD\277\243\005\021\364P\210\221\277\311\305\307\354\235?\200\277;a\036\'\021\211\322?\251\350\034_\230\347\217?\213\355\256\260\027\352\320?\0020\207\376\362\315\303?\251\200\322\346uY\260?\314Ooy\344\327\311\277g\246\007\214\260\010\320?I\362\3002\320\323\244?@\256=\340\377\236\321\277\035%\300\006\217\262\273\2779\213\020\333\210\230\302?t\002$\r\211\351\324?\271DM\275\317\302\243?[\214\023Zk2\261?\272{vl\003\244\322?\241\0022\336E@\267?\324\205s\3354\026\263?\366,q3\001\207\323\277$y\034^\330\232\223?\003\364T*\177D\256?\260\266\226\030J\262\223\277\274\2546\205\324\207\301\277\005\341Z\'\252\221\275\277N\364X\245\364\025\304?\207\362\007\256\004\314\316?b\177\257\344;\313\261?\212o\307\3632\336|?,\\=\243=\247\210?\243\035\034\371\367\276\317\2775\363r\303\247\267\311?\227\355I\252y\346\311\277\230je\242,8\310?\232\216\253\014&\342\264\277\223\232\372\357\332\336\274\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.34053536425763
      }
    }
  }
}
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: "\227\245\037;\003f\265?1/\364\222|\031\300\277Ct\277\235g\312\323\277\272\374s\2640\020\271\277\227\300\301\341\326\305\346?$=Y\023\202\316\302\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: "\202\201\2518\234G\273?\025\225\325;\227:\273?\270\212\002\330\202!\267?N\372\333w\220\'\271?r\262\3605d\201\267?\253\001\300\217r\213\267?"
      }
    }
  }
}
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: "\020u.\177\323\277\315?,\230\017\206s\341\325\277\310\306\243Aq\375\352\277y\010\222\013.\317\315\277\354\370.5N\255\376?\364\3733\232\345\357\326\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: "-)k\177\217\267\257?\257\377N\335F\000\270\277D\306T\235H\346\315\277;\202\214U\261\320\257\277\322\237\356\374\342f\341?\364%N\010\3452\271\277\205\031)\255v\204\274?\006m\034\365M\030\340\277:\031{1\2203\307?\271\236F\251\241\314\314\277\304\237\211FC>\254?K\023t\2618.\323\277\244.@\355A \235?\254!\242\231x\246\333?%\3062<\276-\313?\016q\214\2125\007\301\277\353[i\236;\352\322\277\276\351\241\356\016O\346?:t\275\302m-\272\277\273i\330\374\270\203\303?A8*\227\244N\312?*lA\215\301\251\306?\232\314S\300\313\340\253?\374M\271\217\367-\271\277Vp\370\226]\271\300\277\243\032\245]m!\261?|\213\246\014\225Io?\204\374\226\204\352\033\343\277\355\2274M\215\214\323\277\036\261\243\211\337\243\301\277\224w\177 \377\023\317\277\\\350\307q\373\'\302\277\362\247\034\343~\252\243\277\310\267\203B\014\'\323\277\257(\266F}\304\316\277\000\277\3336|7\264\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: "\330\014[\'\202a\273?\247\335\027\251\257U\273?lc[M)$\267?\350\356A\332\334\177\271?\274\326i\360;\204\267?Q\002l\260t\223\267?"
      }
    }
  }
}
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: "L\026\314_k\253\315?\357\270(#\350\342\325\277\002\013\361\201C\375\352\277g\356\272\006\322\310\315\277\355V\263eW\255\376?D\022\277d2\357\326\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: "sF\370\211\t\303\257?\330\206\350~\250\002\270\277\243NPo\247\346\315\277L\207l-F\324\257\277:\002\234\377\307f\341?~(\203*i4\271\277\334o\351\347\267\205\274?\300}P\216F\030\340\277\036\214l!\2323\307?w0UJ\264\314\314\277O>?\270^@\254?\006\333lw(.\323\277\266?\200/K7\235?\373\227\000\236\217\250\333?\004\002\265\022\330.\313?\243\254\343|\271\002\301\277\030\341\237\2678\352\322\277\247)\034T1P\346?v\341|1\341\313\272\277\253\231\212\3231\221\303?\2412\177\317\004O\312?\211\355}\031^\301\306?\332\370\317\313|\336\253?\265\335\322\014\257\033\271\2771`U \331\315\300\277x\215P\010\322(\261?Q\223 m\002fo?\273.\240/\213\032\343\277fE?\353H\214\323\277\017%\2548\\\242\301\277a\326`\224\002\034\317\277\205\227lR|&\302\277\031j\013\314\266\254\243\277\307^\207Z\022&\323\2777\177\212\365\202\304\316\277>\230\212\300\2406\264\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: "d\261\354T\340\016\316?\206l^\351z\014\326\277\326\200\243\353\351\203\352\277\314`\234\350p\n\316\277g\324\213xi\254\376?m\374\331)\323\017\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: "~\271\215\354\303\202\250?O\021]\202\016\242\250\277`\240X\\\353V\300\277Z\213\222\275\254L\237\277\017\r_\006eO\324?E\312\005\022\327n\251\277\327\317v\243\034 \261?B<\225aP;\321\277\355\326U,\302=\275?\231Q\ro\273\001\275\277l\214\325\010\216\202\241?S\3513\376\303\007\304\277P%5\261ro\225?S?\342\202\325]\320?\251\032&b\310\324\300?n\3000GR\325\257\277\325\323z\010%\324\304\277\254\016\032\344r\254\331?\227;\353\250\3631\250\277E\316c\r\213\261\267?\332\322Xw\275\222\276?\241\246hR \004\273?\243O\303\310\334\253\245?\213kbS\201\236\260\277\266\236*\332\377v\256\277q\372@\331\207\377\244?E\037\226\272N\271\214?\rt\t\200\363B\325\277a;[\330\206\211\305\277\006bL\372\005H\263\277~\0262\200Z\306\277\277\242d#2_\026\263\277,h\270\322pU\222\277\356\307\310\233\031\351\304\277\241\350V2*\223\277\277|\005\224\216X\251\245\277\026\\_I\350\t\307?/\323\272\321\231\365\251?\\\372\345\335\035]|\277[\3771j\261\035\277\277\211\n\371\210\3508\271\277\247\206\200\264,\310\323?j({e8\326\310\277.ae\024y\337\246\277\000\375t\000~h\277?$\352YY\317\t\266\277\352SNi\255e\313\2773\020p\330\001i\220\277&\224\220\026\231\037\243?(\370\342\0135\005\311?sx`\016\217}\250\277\210\020A\017\340\\\252\277\232+e\314\351\002\323?\364\255x\336)]\233\277L\244\323\244zw\330\277\355,1\324AU\270?\240\274\027\251:\266\240?#\2243\035\022\227\253\277\323\014m\0226\304~?\377\311\247\362\026(\200?\3129CQ\206l\307?\322\253\202\361_\366\226?\356\350\023\212\342%\312\277[\321\326\345\261\270\253?\367L\222\203]\343\266\277\215\214\027\3452\317}?Y\226\261\202V\243\264\277\345H\267Q\331S\317?\221\030\210\023\370\001\245?\004\017\347S\244\303\325?9\205v\221\314s\206\277\211\306C6.]\213?\327\373,-\305\022\256\277E\032\005&\377\362\265\277i\362\227\267y\323\305?1\342\347\001p\333\240?e\303\375\360\210\333\316\277\261\237\374\353V\030\314\277\317e\351\022UD\315?$\017\256\226\211U\304?\023\267a\002MZ\304?\364*\237F\375\020\223?\304\250\234q\032\234\264\2770\312\334\330\325M\300\277\364\362\354\201\271\t\303\277\226;2\005\000\244\330?\026\275\t\223\236z\273?\200\244%\272\327\326\245?\376d\201\027|\005\325?\004t\033\000\314`\316?q\261\242\033k\314\300\277\277\033\022\371f\375\301\277\317\374\256\322\335\215\247\277O\020\031\332P\363\220?\017\005\201T\333a\234\277ByM\364\265-\305\2770{f%oB>?\370\025\000:C\271\305?\347\326d\0145p\313?\302\267Q\327\331\233\304\277?\365b|\310|\264\277e\353\240\232\216 \306\277eZ\274\217\020\374\271?\004G\320~d\374\250?&\304\034\001\243\254}?\322E/y\211\021\275\277\267H\010\260\275\301\303?\353\346i\242\242\333\313\277[\272\234\357\365\032\267\277!U\337\320\373*\321?W\000\215XQ\024\307?2\263\3369\267\241\230?\325i\364L\226\323\263?\"\3210|q\027\301?\242\217\321P\276\242\307\277\021\300\306L\024Z\323\277\321j,]q\253\242\277\360G\032\225\200\320\236\277\360\214\253d\006\266\266\277P\215\303\177#\316\300\277\367b\263\370\213\025\274?\0337\333q\363m\262\277d\227\311Y\215\033\276?=\031\323\313)Q\231\277 V\211\322\010\222\310?\025\362x\t(\243\266?\'d\025\220\014\324\234\277\260\373)\361ti\301?n.B.\322W\244\277\231\333\250\005\364\221\246\277\030 )n\237#\244\277\037\022\270X-<\253\277\303<#|\2126\267?e\361\200w\302\371\246\277\364\010\361\216\247}\267\277\215\355F\313o\360\254?\375\321\242\254c\205\322\277\222\033[5C6\267\277\3062\364A9W\314\277\354fL\\\214.\233\277HU\3245\373S\305?P\030\323\263\023~\312?\372\272\204\245=\374\315\277~\211\255\366\017\013\314?\\\335@\243p\227\217?qa\035%\314Z\221\277m\017\004\256r~\301?U\362S\216\364c\246\277\255_2D\216)s\277/\023)\234\271\277\271\277\377\361N\364Tb\224?\377\334\364{\325=\233\277l\314B7\337\354\314?^\251\0038\230~\303?n\317\271\262v\320\315\2775\246\316Y1Cn\277\316s\344\354\271\376\221\277HA\342\343<\214}\277\257\361G\343+\220\322?\331\306\375Z\254\334\217?\336\375\310\346\004\354\320?\3777\322\200G\r\303?!\326\005t\026B\260?\201\025L\032u\263\311\277\351\305.\203\304\017\320?IX\201?\025\257\244?\013M8\367\332\234\321\277\227&#\032G\217\273\277\206\010\375\277\373\212\302?!K]\013\202\367\324?~\024X\321\374\372\243?bh\032\255\327.\261?S\214\346\201\003\246\322?\022|\345\367\250\351\263?`\337\244I\t\373\262?\325\344\304\232\220x\323\277\243\004&_\273\010\224?4L\302KE8\256?\3608o\303\225\222\223\277\300H\335\037\334:\303\277\263\213a%\002\254\275\277\253\037\345JE4\304?h\217S\022\255\331\316?\266b\303\320\325\303\261?\270\370\005\262\315\\}?\355\364\013OPbK\277\264\035\365\020\225\311\317\277g\355i\2224i\311?&\241\213\200\320\330\311\277P\370O\345V\310\307?\031\251\263\223d\331\264\277\307\001\316\360\224\251\274\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: "\006/U.p\335\317?\003\243\246\010\251\"\326\277\376\261\215\005\252\010\353\277\224\033\277zzF\316\277F\303\016\313\270q\376?\372\236\256\250\347\027\330\277\337\0101\320^\216\326?\347\243\241\021\336\224\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: "(,@\340d\333\263?k\000lr\307%\274\277\361\357\254E\303\325\315\277\010f\340V\311w\261\277\227\346;\203\n\341\341?X\017\314v\345\037\275\277\220\331\320Q\346\213\274?\222\307\013@\0317\337\277|\355\026\375w\'\311?\313]y%j\331\314\277M7\300\221d\230\254?\027d\1778v\016\323\277\020\362/@\215\'\236?\255\327$\353(\235\333?\304O\351_i\027\315?\362\322h&Rl\276\277\262+/\250\t\350\322\277\037lCa\005E\346?\352\022j\223\201B\267\277~\201Q\236\273=\302?\r{\342\357dL\312?-\372\254j\263\'\305?\224G\372\361\373\306\261?\337\376\306KN\263\270\2775-Y}d\006\275\277I\202\"\235b\352\250?\r\374\365\352l\202\223?\231\3532Y\036f\343\277\274\261\200\r\365\213\323\277\211n\257\372}\321\303\277\034\203 \273\302:\315\277m\037`\221\214\026\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: "{\205\343\2610/\316?\272I[!\240\031\326\277\'\007\242\262\330\n\353\277Y\"|\020\000\036\320\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: "\336i\0024\3646\273?\361:\235\250do\303\2777\261\271e\253N\325\277\235\264/8\333a\267\277\346\304x\024\r.\351?,$\010Z\245H\304\277FM^\337\232\351\303?\256U\313+\312(\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: "\370\215\022\247\275!\316?h.\003\272\037\007\327\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: "\273\".J\265\360\302?\223lE,\313\020\313\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: "?\311:\366/\035\317?\0244\322\247\223\032\326\277{\307\377\234\264\010\353\277\0220\370Y\000m\316\2777\013\207\356\264q\376?)\220\221\004D,\327\277\013\274\033.\274\214\326?\201<\037\305\344\224\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: "[ \320\360\251\351\263?\035L_Z\221*\274\277;&\252QM\325\315\277\370\332\232\303\313\347\263\277\315\022=\350\017\341\341?A\354QZB\n\275\277\270\300\274l\265\201\274?Cv#\342\3646\337\277\334\034\333\306>0\311?\'\276\"\223\201\334\314\2777\257C\"5\232\254?\021d\332\210\325\037\323\277-x.\022\330(\236?~Z\032\272n\241\333?\'\313ut\342\023\315?\241\326b\202\304k\276\277\231l\363\2574\344\322\277^\265\317\264DD\346?\274\"\210\252\341A\267\277\024\0074\363n\355\301?\245\267w}~L\312?P^\261\367]1\305?\204\333\024\361,\276\261?\267\341j\267\337\262\270\277\345\336s~\376\366\274\277d\352P0,\255\250?\037\020\241|\014\210\223?\373\3643\376\374\217\343\277\340\311;\347\335\213\323\277\323&[(v\306\303\277\225\"\013MR@\315\277(zm\273G\026\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: "l\330=W\217/\316?\n\211$3\007\032\326\277\t\364\311\336\272\n\353\277%\203K\354\312\035\320\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: "\021\363U\317u;\273?\321\274\274\213\'u\303\277\036\220\226\213\303O\325\277\016a\245p\271_\267\277w\2562Jr.\351?)JVR\226K\304\277\241\346D-\352\347\303?\025\027\262@\222(\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: "\351zg[\374\034\316?\021=\325\031~\375\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: "NP\215[A\357\302?m\245Db\334+\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: "\275k\312q\317\030\320?\347tv9*\034\326\277\231L\260$Q\013\353\277\232\330pg\222\'\320\277u\303\364\005\350n\376?jC]\2425 \327\277\207\264l!\316\205\326?\027\265\246\215d\226\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: "RX\366S\240\376\263?\3670t\232\301&\274\277P\027H7\312\312\315\277)\314\247\350{=\257\277\316\331\332_\313\346\341?{\245\213\301\320`\274\277\342\320\030\270\333\242\274?\374\365\377\257\3040\337\277U\000d\365\2738\311?\007Rk\264\032\334\314\277\201\362\301<\003\304\254?\355\007-\351\241\036\322\277\205\313\351\tR\334\236?K\246X\375\335\300\333?\31193\271&#\315?z\333g\004\230S\276\277\020\267:}r\337\322\277\262U\226\263\234D\346?\017-\003->-\267\277\330v\320\322\367\375\303?\355\226\024H\001c\312?\023K-|\230{\305?\232h{\n\334\335\261?\257\320\247E\311\232\270\277%\330r\364\205\346\274\277 \001\005~\236\303\250?\325\302$WE\330\223?+\370\323\375\311#\343\277\006B\305\326\204\200\323\277\313k\341\333\225s\303\277\272\342\'\336\'1\315\277o\322$\331 \n\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: "\370C\346\346\246\031\316?\364\345\202\'\273\"\326\277\240D\005G\'\013\353\277\025\240\346\030\254$\320\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: "\362V\354\2341_\273?\035\020y\245\035a\303\277d\253\223%zM\325\277\235\nY\350==\267\2779\257{\374U3\351?\215\253\026U\0229\304\277\310\214\202\277\345\353\303?#d\376\000\241$\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: "\231\211\314L~\r\316?\311?\303\255\234\026\327\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: "\353\244I\003\013\374\302?\372\274\3025\235\002\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: "\034e\254\325\271\026\316?\314\212\336\350\263\035\326\277\202\340\010\223Z\013\353\277>\027\323@N*\320\2779\315g\341\345n\376?\240\363=tf4\327\277y\364A\315Z\207\326?a\207\316{g\226\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: "\266\303\000!\375\360\263?\235\320\211\242\305\034\274\277\244\306\334\340\205\313\315\277V\242kv\260g\257\277\331\005<\203\320\346\341?\267\243{\336j\373\274\277lq\374\274q\256\274?\220u\036\220\2670\337\277\020\311\224q\265/\311?\244:\211\034%\326\314\277VzRiC\302\254?\305\232K\200t\036\322\277\223\351j\276\340\334\236?\305\000\376\207\342\245\333?\222\3501\203\030\'\315?\\[\300XhS\276\277\352\245\312\336<\343\322\277\3054CW\001F\346?P\0009\345-.\267\277\341\326J\315\254\373\303?~\322\201W\022c\312?\211\n\roI9\305?ZJf?a\347\261?L\201Rs\233\232\270\277\035\017\000UL\367\274\277\022\226\330\244\014\366\250?\370\331\256\205\236\323\223?\334\342\375\234\356\"\343\277\252\363\306\026}\200\323\277\356\310\005+\260\301\303\277\312j\260\302\306*\315\277\014\237&\027\014\n\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: "\010\3519\237R\031\316?\373\275\001kt$\326\277m\262\242\327\025\013\353\277\035\343Q2\022%\320\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: "\273\277\257\261\274\\\273?/P9\270\267d\303\277:\035\266\2160L\325\277\352\207u\006\325A\267\277 \260mR93\351?\253\177S\027B:\304\277\275\016\037\017\375\354\303?.N\207z\347$\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: ";4\\\252j\r\316?\014_fH\356\030\327\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: "\033R\363\253}\375\302?Ej\205\005\333\016\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 {
}
