Exemplo n.º 1
0
    def setUpClass(self,
                   input_image_shape=(3, 224, 224),
                   model="resnet-50",
                   feature="awesome_image"):
        """
        The setup class method for the basic test case with all default values.
        """
        self.feature = feature
        self.label = None
        self.input_image_shape = input_image_shape
        self.pre_trained_model = model

        # Create the model
        self.def_opts = {
            "model": "resnet-50",
            "verbose": True,
        }

        # Get deep features if needed
        if self.feature.endswith("WithDeepFeature"):
            data[self.feature] = get_deep_features(
                data["awesome_image"],
                self.feature.split('_WithDeepFeature')[0])

        # Model
        self.model = tc.image_similarity.create(data,
                                                feature=self.feature,
                                                label=None,
                                                model=self.pre_trained_model)
        self.nn_model = self.model.feature_extractor
        self.lm_model = self.model.similarity_model
        self.opts = self.def_opts.copy()

        # Answers
        self.get_ans = {
            "similarity_model":
            lambda x: type(x) == tc.nearest_neighbors.NearestNeighborsModel,
            "feature":
            lambda x: x == self.feature,
            "training_time":
            lambda x: x > 0,
            "input_image_shape":
            lambda x: x == self.input_image_shape,
            "label":
            lambda x: x == self.label,
            "feature_extractor":
            lambda x: callable(x.extract_features),
            "num_features":
            lambda x: x == self.lm_model.num_features,
            "num_examples":
            lambda x: x == self.lm_model.num_examples,
            "model":
            lambda x: (x == self.pre_trained_model or
                       (self.pre_trained_model == "VisionFeaturePrint_Screen"
                        and x == "VisionFeaturePrint_Scene")),
        }
        self.fields_ans = self.get_ans.keys()
Exemplo n.º 2
0
 def test_select_correct_feature_column_to_train(self):
     # sending both, the correct extracted features colum and image column
     if self.feature == "awesome_image":
         test_data = data.select_columns([self.feature, self.target])
         deep_features_col_name = self.pre_trained_model + "_WithDeepFeature"
         test_data[deep_features_col_name] = get_deep_features(
             data["awesome_image"], self.pre_trained_model)
         test_model = tc.image_classifier.create(
             test_data, target=self.target, model=self.pre_trained_model)
         self.assertTrue(test_model.feature == deep_features_col_name)
Exemplo n.º 3
0
    def setUpClass(
        self,
        model="resnet-50",
        feature="awesome_image",
        input_image_shape=(3, 224, 224),
        tol=0.02,
        num_examples=100,
        label_type=int,
    ):
        self.feature = feature
        self.target = "awesome_label"
        self.input_image_shape = input_image_shape
        self.pre_trained_model = model
        self.tolerance = tol

        # Get deep features if needed
        if self.feature.endswith("WithDeepFeature"):
            data[self.feature] = get_deep_features(
                data["awesome_image"],
                self.feature.split('_WithDeepFeature')[0])

        self.model = tc.image_classifier.create(data,
                                                target=self.target,
                                                feature=self.feature,
                                                model=self.pre_trained_model,
                                                seed=42)
        self.nn_model = self.model.feature_extractor
        self.lm_model = self.model.classifier
        self.max_iterations = 10

        self.get_ans = {
            "classifier":
            lambda x: type(x) == tc.logistic_classifier.LogisticClassifier,
            "feature":
            lambda x: x == self.feature,
            "classes":
            lambda x: x == self.lm_model.classes,
            "training_time":
            lambda x: x > 0,
            "input_image_shape":
            lambda x: x == self.input_image_shape,
            "target":
            lambda x: x == self.target,
            "feature_extractor":
            lambda x: callable(x.extract_features),
            "training_loss":
            lambda x: x > 0,
            "max_iterations":
            lambda x: x == self.max_iterations,
            "num_features":
            lambda x: x == self.lm_model.num_features,
            "num_examples":
            lambda x: x == self.lm_model.num_examples,
            "model":
            lambda x: (x == self.pre_trained_model or
                       (self.pre_trained_model == "VisionFeaturePrint_Screen"
                        and x == "VisionFeaturePrint_Scene")),
            "num_classes":
            lambda x: x == self.lm_model.num_classes,
        }
        self.fields_ans = self.get_ans.keys()