python - 如何在 Python 中广播列表?
问题描述
我需要将 Python 中的列表广播到更大的值。我实际上正在研究一种不使用 Numpy 的反向传播算法。在我有限的开发环境中,我也无权访问它。
据我了解,当您对两个数组使用 Numpy.dot() 操作时,如果一个数组小于另一个数组,numpy 将广播一个数组,因此它们的大小相等。
dW = np.dot(dZ, A_prev.T) / m
当两者不可整除时,Numpy 如何处理广播数组?也就是当两个数组的模不等于0的时候?
就我而言,我有两个列表;len(dZ) 也等于 512,len(A_prev) 也等于 741。我应该如何处理广播 dZ 使其与 A_prev 的大小相同?
到目前为止我尝试过的是:
dZ = dZ * (len(dZ) + (len(A_prev) % len(dZ)))
然而,dZ 是一个巨大的数字,大约 16,000。我不确定为什么。
解决方案
你可以试试这些:
假设 dz 是一个 3 长度的数组:
dz = [4,2,8]
A_prev 是 11 项数组:
A_prev = [0]*11
除了将 dz 广播到 A_prev 的长度之外,请执行以下操作:
dz = dz* (len(A_prev)//len(dz))
dz = dz + dz[:len(A_prev)-len(dz)]
现在 dz 是一个 11 项数组:
[4, 2, 8, 4, 2, 8, 4, 2, 8, 4, 2]
推荐阅读
- django - Django rest_auth - 如何添加自定义密码验证规则
- django - 在 Django 中从“多”字段到“一”
- c# - Entity Framework Core - 插入单向父子关系
- python - 按 group+ sklearn cross_val_score 分成训练和测试
- python - 使用 Sphinx 和 reStructuredText 将 CSS 类应用于表格行
- ajax - 单击 Django 中的按钮后更改布尔值
- c# - C#中的列表切片
- nstextview - NSTextView 如何禁用'您不拥有文件“xxx”并且没有写入权限。'
- python - 对字段 ManyToMany 中的对象进行排序
- javascript - 为什么有些浏览器会尝试将汇编语言文件呈现为 HTML?