使用@tf.function 将输入转换为 UTF-8
Converting an input to UTF-8 with @tf.function
我正在使用 TensorFlow 2.4.1。我尝试使用 tf.strings.unicode_decode 对带有 @tf.function 的 base64 编码字符串进行解码,但出现了错误,即 ValueError: Rank of input
must be statically known。我检查了 tf.strings.unicode_decode 在没有 @tf.function 的情况下工作正常。有没有办法用@tf.function解码base64编码的字符串?非常感谢您的回答。
我加载了一个 SavedModel 并想更改 serving_default
。但是我在将输入转换为 UTF-8
时遇到了困难。这是我试过的代码。
class CustomTransformer(tf.keras.Model):
def __init__(self):
super(CustomTransformer, self).__init__()
self.model = tf.saved_model.load('./models/transformer/1')
@tf.function(input_signature=[tf.TensorSpec(shape=None, dtype=tf.string)])
def call(self, input):
# Error occurred. ValueError: Rank of `input` must be statically known.
_input_str = tf.strings.unicode_decode(input_data, 'UTF-8')
return _input_str
这是错误信息。
ValueError: Rank of `input` must be statically known.
尝试从已加载的 SavedModel 更改 serving_default
时,是否有将输入转换为 UTF-8
的方法?
使用tf.strings.unicode_decode
时,您需要指定一个形状。 (参见 documentation)。在那种情况下,因为您使用的是没有任何维度的张量(一个简单的字符串),所以只需提供一个空元组作为形状:
@tf.function(input_signature=[tf.TensorSpec(shape=(), dtype=tf.string)])
我正在使用 TensorFlow 2.4.1。我尝试使用 tf.strings.unicode_decode 对带有 @tf.function 的 base64 编码字符串进行解码,但出现了错误,即 ValueError: Rank of input
must be statically known。我检查了 tf.strings.unicode_decode 在没有 @tf.function 的情况下工作正常。有没有办法用@tf.function解码base64编码的字符串?非常感谢您的回答。
我加载了一个 SavedModel 并想更改 serving_default
。但是我在将输入转换为 UTF-8
时遇到了困难。这是我试过的代码。
class CustomTransformer(tf.keras.Model):
def __init__(self):
super(CustomTransformer, self).__init__()
self.model = tf.saved_model.load('./models/transformer/1')
@tf.function(input_signature=[tf.TensorSpec(shape=None, dtype=tf.string)])
def call(self, input):
# Error occurred. ValueError: Rank of `input` must be statically known.
_input_str = tf.strings.unicode_decode(input_data, 'UTF-8')
return _input_str
这是错误信息。
ValueError: Rank of `input` must be statically known.
尝试从已加载的 SavedModel 更改 serving_default
时,是否有将输入转换为 UTF-8
的方法?
使用tf.strings.unicode_decode
时,您需要指定一个形状。 (参见 documentation)。在那种情况下,因为您使用的是没有任何维度的张量(一个简单的字符串),所以只需提供一个空元组作为形状:
@tf.function(input_signature=[tf.TensorSpec(shape=(), dtype=tf.string)])