python - 我可以使用 Estimator API 在没有训练步骤的情况下生成预测(例如:KNN)吗?
问题描述
我正在尝试通过创建自定义 Estimator 来使用 tf.estimator API 设置 KNN。KNN 没有训练的概念,所以我只想定义一个预测步骤。
我尝试将其设置为:
def input_fn():
train_data = np.random.sample((100, 2))
data = tf.data.Dataset.from_tensor_slices(train_data)
return data
def model_fn(features, labels, mode, params, config):
k=10
distance = tf.reduce_sum(tf.abs(tf.subtract(features, tf.expand_dims(features, 1))), axis=2)
_, top_k_indices = tf.nn.top_k(tf.negative(distance), k=k)
return tf.estimator.EstimatorSpec(mode, predictions=top_k_indices)
run_config = tf.estimator.RunConfig(save_summary_steps=None,
save_checkpoints_secs=None)
estimator = tf.estimator.Estimator(model_fn, config=run_config)
next(estimator.predict(input_fn))
但我得到了错误ValueError: Could not find trained model in model_dir: /tmp/tmpPGjIhN.
我希望模型在没有经过训练的情况下进行预测,只需返回在 model_fn 中定义的 10 个最近邻居。我们不需要训练来初始化权重。
解决方案
推荐阅读
- c# - RichTextBox - 如何突出显示行尾?
- php - 每天在特定时间自动触发 Mysql 查询
- c# - 为什么在某些情况下使用 LineRenderer 绘制的线条似乎很粗?
- javascript - 无法将来自 db.countDocuments 的数据存储在 mongoDB 中
- c++ - std::filesystem copy_file 失败
- java - 使用 GlobalSign DSS AATL 证书进行 iText7 pdf 签名显示 Adobe Reader 中的信任链损坏
- typescript - Typescript 不会从平面属性函数中推断出解析的属性
- c# - Unity 2D - 从边缘跌落时,跌落动画不起作用
- apache - Flask SocketIO + Apache
- typescript - 关于在类构造函数中有一个带有默认道具的参数对象的打字稿菜鸟问题