|
@@ -1,21 +1,36 @@
|
|
|
import io
|
|
|
-import numpy as np
|
|
|
-import unittest
|
|
|
import test_utils
|
|
|
+import unittest
|
|
|
|
|
|
-from chainer.serializers import npz
|
|
|
from contextlib import contextmanager
|
|
|
|
|
|
-
|
|
|
-from cvmodelz.models.pretrained import *
|
|
|
from cvmodelz.models import ModelFactory
|
|
|
|
|
|
-class PretrainedTests(unittest.TestCase):
|
|
|
+class LoadingTests(unittest.TestCase):
|
|
|
|
|
|
@contextmanager
|
|
|
def mem_file(self) -> io.BytesIO:
|
|
|
yield io.BytesIO()
|
|
|
|
|
|
+ def cv2model_load_pretrained(self, key):
|
|
|
+
|
|
|
+ model_rnd = ModelFactory.new(key, pretrained_model=None)
|
|
|
+ model_loaded1 = ModelFactory.new(key, pretrained_model="auto")
|
|
|
+ model_loaded2 = ModelFactory.new(key, pretrained_model="auto")
|
|
|
+
|
|
|
+ params_rnd = dict(model_rnd.namedparams())
|
|
|
+ params_loaded1 = dict(model_loaded1.namedparams())
|
|
|
+ params_loaded2 = dict(model_loaded2.namedparams())
|
|
|
+
|
|
|
+ for name, param in params_rnd.items():
|
|
|
+ loaded1 = params_loaded1[name]
|
|
|
+ loaded2 = params_loaded2[name]
|
|
|
+
|
|
|
+ self.assertTrue(( param.array != loaded1.array).any())
|
|
|
+ self.assertTrue(( param.array != loaded2.array).any())
|
|
|
+ self.assertTrue((loaded1.array == loaded2.array).all())
|
|
|
+
|
|
|
+
|
|
|
def load_for_finetune(self, key):
|
|
|
|
|
|
model = ModelFactory.new(key, n_classes=1000)
|
|
@@ -46,8 +61,11 @@ class PretrainedTests(unittest.TestCase):
|
|
|
|
|
|
|
|
|
|
|
|
-test_utils.add_tests(PretrainedTests.load_for_finetune,
|
|
|
+test_utils.add_tests(LoadingTests.load_for_finetune,
|
|
|
model_list=ModelFactory.get_models(["chainercv2", "cvmodelz"]))
|
|
|
|
|
|
-test_utils.add_tests(PretrainedTests.load_for_inference,
|
|
|
+test_utils.add_tests(LoadingTests.load_for_inference,
|
|
|
model_list=ModelFactory.get_models(["chainercv2", "cvmodelz"]))
|
|
|
+
|
|
|
+test_utils.add_tests(LoadingTests.cv2model_load_pretrained,
|
|
|
+ model_list=ModelFactory.get_models(["chainercv2"]))
|