(self, variable_op)
| 85 | class SaverTest(test.TestCase): |
| 86 | |
| 87 | def basicSaveRestore(self, variable_op): |
| 88 | save_path = os.path.join(self.get_temp_dir(), "basic_save_restore") |
| 89 | |
| 90 | with self.session(graph=ops_lib.Graph()) as sess: |
| 91 | # Build a graph with 2 parameter nodes, and Save and |
| 92 | # Restore nodes for them. |
| 93 | v0 = variable_op(10.0, name="v0") |
| 94 | v1 = variable_op(20.0, name="v1") |
| 95 | v2 = saver_test_utils.CheckpointedOp(name="v2") |
| 96 | v2_init = v2.insert("k1", 30.0) |
| 97 | |
| 98 | # Initialize all variables |
| 99 | if not context.executing_eagerly(): |
| 100 | self.evaluate([variables.global_variables_initializer(), v2_init]) |
| 101 | |
| 102 | # Check that the parameter nodes have been initialized. |
| 103 | self.assertEqual(10.0, self.evaluate(v0)) |
| 104 | self.assertEqual(20.0, self.evaluate(v1)) |
| 105 | self.assertEqual(b"k1", self.evaluate(v2.keys())) |
| 106 | self.assertEqual(30.0, self.evaluate(v2.values())) |
| 107 | |
| 108 | # Save the initialized values in the file at "save_path" |
| 109 | save = saver_module.Saver( |
| 110 | { |
| 111 | "v0": v0, |
| 112 | "v1": v1, |
| 113 | "v2": v2.saveable |
| 114 | }, restore_sequentially=True) |
| 115 | val = save.save(sess, save_path) |
| 116 | self.assertTrue(isinstance(val, six.string_types)) |
| 117 | self.assertEqual(save_path, val) |
| 118 | |
| 119 | # Start a second session. In that session the parameter nodes |
| 120 | # have not been initialized either. |
| 121 | with self.session(graph=ops_lib.Graph()) as sess: |
| 122 | v0 = variable_op(-1.0, name="v0") |
| 123 | v1 = variable_op(-1.0, name="v1") |
| 124 | v2 = saver_test_utils.CheckpointedOp(name="v2") |
| 125 | |
| 126 | # Assert that the variables are not initialized. |
| 127 | if not context.executing_eagerly(): |
| 128 | self.assertEqual( |
| 129 | len(variables.report_uninitialized_variables().eval()), 2) |
| 130 | self.assertEqual(0, len(self.evaluate(v2.keys()))) |
| 131 | self.assertEqual(0, len(self.evaluate(v2.values()))) |
| 132 | # Restore the saved values in the parameter nodes. |
| 133 | save = saver_module.Saver({"v0": v0, "v1": v1, "v2": v2.saveable}) |
| 134 | save.restore(sess, save_path) |
| 135 | # Check that the parameter nodes have been restored. |
| 136 | self.assertEqual(10.0, self.evaluate(v0)) |
| 137 | self.assertEqual(20.0, self.evaluate(v1)) |
| 138 | self.assertEqual(b"k1", self.evaluate(v2.keys())) |
| 139 | self.assertEqual(30.0, self.evaluate(v2.values())) |
| 140 | |
| 141 | # Build another graph with 2 nodes, initialized |
| 142 | # differently, and a Restore node for them. |
| 143 | with self.session(graph=ops_lib.Graph()) as sess: |
| 144 | v0_2 = variable_op(1000.0, name="v0") |
no test coverage detected