如何将单张图像转换为形状为(1,150,80,1)的4D Tensor?
解决方案
首先,完成第6步只需添加batch维度即可——经过前5步处理后,你的张量形状已经是(150, 80, 1)(对应[width, height, channels]),只需补充batch_size=1的维度就能匹配模型要求的(1,150,80,1):
# 6. 添加batch维度,得到目标4D张量 img = tf.expand_dims(img, axis=0) # 也可以用更简洁的写法: # img = img[tf.newaxis, ...]
可以添加一行代码验证最终形状:
print(img.shape) # 输出 (1, 150, 80, 1)
参考内容翻译(原Keras字符串查找层说明)
字符串查找层(StringLookup)是Keras提供的分类预处理工具,用于将字符串/整数标签映射为连续整数索引,常用于OCR、文本分类等任务:
- 核心作用:建立词汇表与整数索引的双向映射,支持正向(字符串转索引)、反向(索引转字符串)两种转换
- 关键参数:
vocabulary:手动指定词汇表,若留空则自动从训练数据中构建mask_token:用于序列填充的掩码标记(可选)oov_token:处理词汇表外未知字符的标记(可选)
- 典型用法(以OCR字符映射为例):
# 定义OCR任务的字符词汇表 vocab = ['0','1','2','3','4','5','6','7','8','9','A','B','C'] # 创建正向查找层(字符串转索引) string_to_idx = tf.keras.layers.StringLookup(vocabulary=vocab, oov_token='[UNK]') # 创建反向查找层(索引转字符串) idx_to_string = tf.keras.layers.StringLookup(vocabulary=vocab, oov_token='[UNK]', invert=True)
内容的提问来源于stack exchange,提问作者Vipz
相关产品推荐
相关产品推荐

