python - 如何为张量流/服务模型预处理数据?
问题描述
我对 Tensorflow 比较陌生。我使用 Docker 在本地部署了这个模型,但是我输入的数据没有经过预处理,所以它给了我一个错误。这可能是因为我在创建模型时对模型外部的数据进行了预处理?
当我输入数据时,我通过 Docker 从部署的 tensorflow/serving 中收到此错误:
{ "error": "Failed to process element: 0 of \'instances\' list. Error: Invalid argument: JSON Value: \"Hello\" Type: String is not of expected type: float" }
这意味着它需要一个标记化的单词数组,因此,[[32],[1]]。类似的东西。
这是我的模型的样子:
model = tf.keras.Sequential([
tf.keras.layers.Embedding(
vocab_size, embedding_dim, input_length=max_length),
tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(32)),
tf.keras.layers.Dense(128, activation="relu"),
tf.keras.layers.Dense(3, activation="softmax")
])
如何以与初始训练数据相同的方式标记和填充数据,或者如何将该步骤添加到模型中?
解决方案
更新:
找了好久的答案,不知道为什么我花了这么长时间才遇到酸洗,用相同的分词器对输入请求进行分词的答案就是泡菜,所以
# saving
with open('tokenizer.pickle', 'wb') as handle:
pickle.dump(tokenizer, handle, protocol=pickle.HIGHEST_PROTOCOL)
# loading
with open('tokenizer.pickle', 'rb') as handle:
tokenizer = pickle.load(handle)
如果需要,也可以使用填充来完成。
推荐阅读
- c# - 通过两个 Web 域传输私钥的最佳解决方案
- python - 使用 biopython 将字典写入文件
- mysql - 在 GoogleAppsScript 中使用 JDBC。不连接 myDB(mysql)
- python - 更漂亮的 vscode 扩展不支持 Django 模板标签 {% tag %}
- c# - 2020 年 SignalR 自托管应用程序
- continuous-integration - 是否可以在执行期间更新 mule 应用程序内部的自定义属性
- flutter - Flutter中的writeToFile函数如何返回null值?
- html - 下拉菜单样式,以便菜单显示在底部元素的顶部。CSS
- linux - 从文本文件中删除 git 分支
- c++ - 在树结构 .txt 文件中搜索节点