# Copyright 2021 The KubeEdge Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import os from sedna.common.config import Context from sedna.core.incremental_learning import IncrementalLearning from sedna.datasources import TxtDataParse from interface import Estimator def _load_txt_dataset(dataset_url): # use original dataset url, # see https://github.com/kubeedge/sedna/issues/35 original_dataset_url = Context.get_parameters('original_dataset_url') return os.path.join(os.path.dirname(original_dataset_url), dataset_url) def main(): # load dataset. test_dataset_url = Context.get_parameters('test_dataset_url') valid_data = TxtDataParse(data_type="test", func=_load_txt_dataset) valid_data.parse(test_dataset_url, use_raw=True) # read parameters from deployment config. class_names = Context.get_parameters("class_names") class_names = [label.strip() for label in class_names.split(',')] input_shape = Context.get_parameters("input_shape") input_shape = tuple(int(shape) for shape in input_shape.split(',')) incremental_instance = IncrementalLearning(estimator=Estimator) return incremental_instance.evaluate(valid_data, class_names=class_names, input_shape=input_shape) if __name__ == '__main__': main()