完善以下代码norm = np.sum(mf_out, axis=2, keepdims=True) '''print(mf_out) print(norm)''' # mf_norm = np.divide(mf_out, norm) my_norm = [] for i in norm: if i == 0: break else: mf_norm = np.divide(mf_out, norm) my_norm.append(mf_norm) #mf_norm = mf_out / norm '''print(mf_norm)''' # Flatten normalized MFs for input to output layer flat = mf_norm.reshape(len(X_batch), -1)
时间: 2024-01-23 20:02:00 浏览: 73
WSNM-release.zip_Schatten_nuclear norm_p norm_p范数最小化_riverv2h
5星 · 资源好评率100%
好的,如果您想要在计算 `mf_norm` 时,将除数为 0 的元素替换为 1,可以使用如下代码:
```python
import numpy as np
norm = np.sum(mf_out, axis=2, keepdims=True)
mf_norm = np.divide(mf_out, np.where(norm == 0, 1, norm))
my_norm = []
for i in range(len(norm)):
if norm[i] == 0:
my_norm.append(np.zeros_like(mf_out[i]))
else:
my_norm.append(mf_norm[i])
flat = np.array(my_norm).reshape(len(X_batch), -1)
```
上述代码中,我们首先计算了 `norm`,然后使用 `np.where()` 函数判断 `norm` 中是否有元素为 0,如果是,则将其替换为 1,否则不作处理。接着,使用 `np.divide()` 函数计算 `mf_norm`,并保存到一个新的列表 `my_norm` 中。在循环中,我们使用 `range(len(norm))` 来遍历 `norm` 中的每个元素,如果该元素为 0,则将一个与 `mf_out` 相同形状的全零数组添加到 `my_norm` 中,否则将 `mf_norm` 中对应位置的元素添加到 `my_norm` 中。
最后,使用 `np.array()` 将 `my_norm` 转换为 NumPy 数组,并使用 `reshape()` 函数将其展平为二维数组 `flat`,以便进行下一步的操作。
阅读全文