Python中的这个属性语法是啥? [复制]
Posted
技术标签:
【中文标题】Python中的这个属性语法是啥? [复制]【英文标题】:What is this attribute syntax in Python? [duplicate]Python中的这个属性语法是什么? [复制] 【发布时间】:2019-01-27 07:47:59 【问题描述】:我正在关注a tutorial in Pytorch,并且有这样的表达:
grad_h[h < 0] = 0
这个语法是如何工作的,它有什么作用?
【问题讨论】:
在关闭此 q 之前,它将 grad_h 数组中小于零的所有值分配为零 如果grad_h
是 dict 并且 h = 1
是 int 那么:grad_h[h < 0] = 0
将导致 grad_h = False: 0
这是可行的,因为grad_h
是一个 NumPy 数组。
这几乎可以肯定是现有问题的重复,但答案很好;我们只需要为您找到它。
同时,这里是the relevant section in the numpy user guide,它很好地解释了事情。
【参考方案1】:
这意味着将grad_h
中对应的h
为负数的所有值替换为零。
所以它正在实现某种掩码,仅当h
为负时才保留渐变值
假设 grad_h 和 h 具有相同的形状。
grad_h.shape == h.shape
当您执行h < 0
时,您将获得一个具有相同形状的布尔数组,如果每个 i 的 h[i] < 0
设置为 True
。
然后您应用此掩码对grad_h
进行切片,最后将所有切片元素设置为零
【讨论】:
你能解释一下这个语法是如何工作的吗?粗略一看,我希望它将grad_h
的属性True
或False
设置为0
...
好的,我会编辑以更好地解释【参考方案2】:
表示只要h小于0,变量grad_h就等于0。
【讨论】:
请考虑在您的回答中添加更多信息以上是关于Python中的这个属性语法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 HTML 属性中调用带有字符串参数的函数的正确语法是啥? [复制]
Python 中的“变量 //= 值”语法是啥意思? [复制]