Exemplo n.º 1
0
 def LayerWeights_init(self,
                       weightsShape=None,
                       weightsFlattenAxis=None,
                       content=None,
                       floatType="float32",
                       floatsPerLine=12,
                       src=None,
                       Extension=None,
                       mixedclass_=None):
     self.original_tagname_ = None
     self.weightsShape = supermod._cast(None, weightsShape)
     self.weightsFlattenAxis = supermod._cast(None, weightsFlattenAxis)
     self.src = supermod._cast(None, src)
     if Extension is None:
         self.Extension = []
     else:
         self.Extension = Extension
     if mixedclass_ is None:
         self.mixedclass_ = supermod.MixedContainer
     else:
         self.mixedclass_ = mixedclass_
     validFloatTypes = [
         "float6", "float7", "float8", "float16", "float32", "float64"
     ]
     if floatType not in validFloatTypes:
         floatType = "float32"
     from nyoka.Base64 import FloatBase64
     base64string = "\t\t\t\t" + "data:" + floatType + ";base64," + FloatBase64.from_floatArray(
         content, floatsPerLine)
     base64string = base64string.replace("\n", "\n\t\t\t\t")
     self.content_ = [supermod.MixedContainer(1, 2, "", base64string)]
     self.valueOf_ = base64string
Exemplo n.º 2
0
    def test_02_image_classifier_with_base64string_as_input(self):
        model = applications.MobileNet(weights='imagenet',
                                       include_top=False,
                                       input_shape=(224, 224, 3))
        activType = 'sigmoid'
        x = model.output
        x = Flatten()(x)
        x = Dense(1024, activation="relu")(x)
        predictions = Dense(2, activation=activType)(x)
        model_final = Model(inputs=model.input,
                            outputs=predictions,
                            name='predictions')

        cnn_pmml = KerasToPmml(model_final,model_name="MobileNetBase64",description="Demo",\
            copyright="Internal User",dataSet='imageBase64',predictedClasses=['dogs','cats'])
        cnn_pmml.export(open('2classMBNetBase64.pmml', "w"), 0)

        img = image.load_img('nyoka/tests/resizedCat.png')
        img = img_to_array(img)
        img = preprocess_input(img)
        imgtf = np.expand_dims(img, axis=0)

        base64string = "data:float32;base64," + FloatBase64.from_floatArray(
            img.flatten(), 12)
        base64string = base64string.replace("\n", "")
        csvContent = "imageBase64\n\"" + base64string + "\""
        text_file = open("input.csv", "w")
        text_file.write(csvContent)
        text_file.close()

        model_pred = model_final.predict(imgtf)
        model_preds = {'dogs': model_pred[0][0], 'cats': model_pred[0][1]}

        model_name = self.adapa_utility.upload_to_zserver(
            '2classMBNetBase64.pmml')

        predictions, probabilities = self.adapa_utility.score_in_zserver(
            model_name, 'input.csv', 'DN')

        self.assertEqual(
            abs(probabilities['cats'] - model_preds['cats']) < 0.00001, True)
        self.assertEqual(
            abs(probabilities['dogs'] - model_preds['dogs']) < 0.00001, True)
Exemplo n.º 3
0
        import nyoka

        if self.src is not None:
            raw_content = open(self.src, "r").read()
        elif self.content_ is not None and self.content_[0].value is not None:
            raw_content = self.content_[0].value

        raw_content = raw_content.replace(' ', '')
        raw_content = raw_content.replace('\t', '')
        raw_content = raw_content.replace('\n', '')
        
        if raw_content.startswith("data:float32;base64,") or raw_content.startswith("data:float64;base64,") or raw_content.startswith("data:float16;base64,"):
            raw_content = raw_content[20:] + "=="
        elif raw_content.startswith("data:float;base64,"):
            raw_content = raw_content[18:] + "=="
        else:
            return None

        from nyoka.Base64 import FloatBase64
        if raw_content.find("+") > 0:
            return FloatBase64.to_floatArray_urlsafe(raw_content)
        else:
            return FloatBase64.to_floatArray(raw_content)