Ich habe das Modell generiert, ich habe das Modell geladen. Ich habe dies überprüft, weil ich die verfügbaren Signaturen sehen kann: < /p>
Ich weiß nicht, was die Variablen coded_result und decoded_result sein sollen. Kann mir jemand einen konkreten Beispielcode geben? < /P>
Code: Select all
val encodeInput = mapOf( "x" to floatArrayOf(9f))
val encodeOutput = mapOf("encoded_result" to Array(1) { "" })
interpreter!!.runSignature(encodeInput,encodeOutput, "encode")
val inputs = mapOf(
"x" to arrayOf("9") // 1D string array
)
val outputs = mapOf(
"decoded_result" to Array(1) { 0.0f } // 1D float array, size matches input
)
val decodedResult = outputs["decoded_result"] as Array
interpreter!!.runSignature(inputs, outputs, "decode")
< /code>
Das habe ich und das sind die TF -Funktionen: < /p>
@tf.function(input_signature=[tf.TensorSpec(shape=[None], dtype=tf.float32)])
def encode(self, x):
result = tf.strings.as_string(x)
return {
"encoded_result": result
}
@tf.function(input_signature=[tf.TensorSpec(shape=[None], dtype=tf.string)])
def decode(self, x):
result = tf.strings.to_number(x)
return {
"decoded_result": result
}
< /code>
Ich verstehe, dass wir den zu codierenden Wert von X übergeben, aber sagen wir der Funktion auch, wie die Ausgabe von X aussehen wird? coded_result: result
"decoded_result: 9< /code> < /p>
Aber ich bekomme diese
java.lang.ILLEGALARGUMENTException: Interner Fehler: Nicht auf dem gegebenen Interpreter: StringTonumberop konnte nicht richtig konvertieren: 9
Knotennummer 1 (TFLiteFlexDelegate). /> Dinge, die ich ausprobiert habe: Ich konnte nur eine einfache Additionsfunktion erstellen, um eine Nummer aufzunehmen und 5 hinzuzufügen, und das funktioniert, aber wenn ich versuche, String -Manipulationen zu verwenden, die fehlschlagen. Ich möchte in der Lage sein, Listen von String -Daten übergeben zu können und diese für das Training auf dem Gerät speziell mit dem Training aufgenommen zu werden. Es unterstützt keine Boxwerte wie Array (1) {1f}?