【发布时间】:2018-08-24 20:49:31
【问题描述】:
我最近发现了一个概念验证实现,它使用 numpy.zeros 以单热编码方式准备功能:
data = np.zeros((len(raw_data), n_input, vocab_size),dtype=np.uint8)
如上所示,单个输入为np.uint8。
检查模型后发现,tensorflow模型的输入占位符定义为tf.float32:
x = tf.placeholder(tf.float32, [None, n_input, vocab_size], name="onehotin")
我的特殊问题:
tensorflow 如何处理这种输入类型的“不匹配”。这些值(0/1) 是否被张量流正确解释或强制转换。如果是这样,这是文档中提到的某个地方吗?谷歌搜索后,我找不到答案。应该提到的是,模型运行和值似乎是合理的。但是,将输入的 numpy 特征键入为 np.float32 会导致需要大量内存。
相关性: 一个正在运行但经过错误训练的模型在采用输入管道/将模型部署到生产环境后表现会有所不同。
【问题讨论】:
标签: python numpy tensorflow type-conversion one-hot-encoding