python-3.x - 为什么 tf.random.truncated_normal 可以得到一个不是向量的形状,即使它说它只接收向量的形状?
问题描述
我正在使用 Python 中的 TensorFlow。
我通读了 tf.random.truncated_normal的文档 ,输入“形状”得到一维张量或 python 数组,即一个向量(根据https://www.tensorflow.org/guide/tensors)。
但是,在我使用的示例中,“形状”是一个 4-D 张量。或者它被认为是一个向量?也许我对向量和张量的定义有疑问?
def weight_variable(shape, name = 'noname'):
initial = tf.truncated_normal(shape, stddev=0.1)
return tf.Variable(initial, name = name)
W_conv1 = weight_variable([5, 5, 3, 32], 'W_conv1')
解决方案
所以你在理解张量时犯了一个小错误。张量可以有不同的“等级”。诸如 1 的单个标量是 Rank 0 张量。诸如 [1,2,3,4] 之类的列表/向量是 Rank 1 张量。2-D 矩阵,例如 [[0,0],[0,0]] 是 Rank 2 张量,3D 矩阵是 Rank 3 张量,依此类推。因此,您在这里的输入是向量或 Rank 1 张量,而不是 4-D 张量。
推荐阅读
- python - 如何检查DOM中是否存在元素?
- python - 校正图像
- node.js - MongoDB聚合:按类别分组并总结金额
- apache-kafka - 结构化从 Kafka 主题接收的数据
- kubernetes - 如何在 Kubernetes 中部署具有不同资源限制的 daemonset?
- java - 如何在 JFrame 中打开 HTML 文件?
- javascript - 来自 API 的数据调用为空
- javascript - 如何用字符串替换未定义的值
- android - 权限被拒绝:在 Android 上缺少权限或权限不足,但适用于 ios Firestore
- python - 使用 python 解析 Yaml 文件时遇到问题