def test_eval_wthout_params(self): params = { "resolution": "224*2 224//2", } params = convert_params(params) set_parameter_defaults(params) self.assertEqual([448, 112], params["resolution"])
def test_set_default_params_list_dict(self): params = { "targets": [ { "weight": 23 }, { "weight": 42, "constraints": [ { "saturation": { "above": 10. } }, ] }, ], } set_parameter_defaults(params) self.assertEqual(1.0, params["learnrate"]) self.assertEqual(23, params["targets"][0]["weight"]) self.assertEqual(42, params["targets"][1]["weight"]) self.assertEqual([], params["targets"][0]["features"]) self.assertEqual( 10., params["targets"][1]["constraints"][0]["saturation"]["above"]) self.assertEqual( 1., params["targets"][1]["constraints"][0]["saturation"]["weight"])
def test_set_default_params_dict(self): params = {"init": {"mean": 23}} set_parameter_defaults(params) self.assertEqual(1.0, params["learnrate"]) self.assertEqual(23, params["init"]["mean"]) self.assertEqual([.1, .1, .1], params["init"]["std"]) self.assertEqual([], params["targets"])
def test_no_expression(self): params = { "learnrate": 1., } params = convert_params(params) set_parameter_defaults(params) self.assertEqual(float, type(params["learnrate"])) self.assertEqual(1.0, params["learnrate"])
def test_conversion(self): params = { "resolution": "23", "init": { "mean": "1", "std": "1 2 3", }, "targets": [ { "start": 1, "end": 0.5, "weight": 23, }, { "start": "25%", "end": "300", }, { "start": "0.5", "end": "99.9%", "transforms": [{ "resize": [22, 23] }] }, ], } params = convert_params(params) set_parameter_defaults(params) self.assertEqual([23, 23], params["resolution"]) self.assertEqual([1, 1, 1], params["init"]["mean"]) self.assertEqual([1, 2, 3], params["init"]["std"]) self.assertEqual(float, type(params["targets"][0]["weight"])) self.assertEqual(23., params["targets"][0]["weight"]) self.assertEqual(int, type(params["targets"][0]["start"])) self.assertEqual(1, params["targets"][0]["start"]) self.assertEqual(float, type(params["targets"][0]["end"])) self.assertEqual(0.5, params["targets"][0]["end"]) self.assertEqual(float, type(params["targets"][1]["start"])) self.assertEqual(0.25, params["targets"][1]["start"]) self.assertEqual(int, type(params["targets"][1]["end"])) self.assertEqual(300, params["targets"][1]["end"]) self.assertEqual(float, type(params["targets"][2]["start"])) self.assertEqual(0.5, params["targets"][2]["start"]) self.assertEqual(float, type(params["targets"][2]["end"])) self.assertAlmostEqual(0.999, params["targets"][2]["end"]) self.assertEqual([22, 23], params["targets"][2]["transforms"][0]["resize"])
def test_expression(self): params = { "learnrate": "t * .5", } params = convert_params(params) set_parameter_defaults(params) args = { key: 0. for key in chain(EXPRESSION_ARGS["time"]["args"], EXPRESSION_ARGS["resolution"]["args"]) } args["time"] = .5 self.assertEqual(.25, params["learnrate"](**args))
def test_set_default_params_empty(self): params = dict() set_parameter_defaults(params) self.assertEqual(1.0, params["learnrate"]) self.assertEqual([.5, .5, .5], params["init"]["mean"]) self.assertEqual([], params["targets"])