gpt4 book ai didi

python - 使用稀疏张量为 TensorFlow 中的 softmax 层提供占位符

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:54 26 4
gpt4 key购买 nike

有没有人尝试使用稀疏张量通过 TensorFlow 进行文本分析并取得成功?一切就绪,我设法在 tf.Session 中为带有 numpy 数组的 Softmax 层提供 feed_dict,但我无法为字典提供 SparseTensorValues。

我还没有找到关于使用稀疏矩阵训练模型(例如 softmax)和 Tensor Flow 的文档,这很奇怪,因为类 SparseTensorSparseTensorValuesTensorFlow.sparse_to_dense 方法已准备就绪,但没有关于如何在 session.run(fetches,feed_dict=无) 方法。

非常感谢,

最佳答案

我找到了一种将稀疏图像放入 tensorflow 的方法,包括批处理(如果有帮助的话)。

我在字典中创建了一个 4 维稀疏矩阵,其中维度为 batchSize、xLen、ylen、zLen(例如,对于颜色,zLen 为 3)。以下伪代码适用于一批 50 个 32x96 像素的三色图像。值是每个像素的强度。在下面的代码片段中,我显示了正在初始化的第一批的前 2 个像素...

shape = [50, 32, 96, 3]
indices = [[0, 20, 31, 0],[0, 22, 33, 1], etc...]
values = [12, 24, etc...]
batch = {"indices": indices, "values": values, "shape": shape}

在设置计算图时,我创建了一个正确维度的稀疏占位符

images = tf.sparse_placeholder(tf.float32, shape=[None, 32, 96, 3])

使用“无”是为了改变批量大小。

当我第一次想使用图像时,例如为了输入批量卷积,我将它们转换回密集张量:

images = tf.sparse_tensor_to_dense(batch) 

然后当我准备好运行 session 时,例如为了训练,我将批处理的 3 个组件传递到字典中,以便它们将被 sparse_placeholder 拾取:

train_dict = {images: (batch['indices'], batch['values'], batch['shape']), etc...}
sess.run(train_step, feed_dict=train_dict)

如果您不需要进行批处理,只需省略第一个维度并从占位符形状中删除“无”。

我找不到任何方法将图像作为稀疏矩阵数组批量传递。它只有在我创建第 4 个维度时才有效。我很想知道替代方案。

虽然这不能准确回答您的问题,但我希望它对我有用,因为我一直在努力解决类似的问题。

关于python - 使用稀疏张量为 TensorFlow 中的 softmax 层提供占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33916981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com