python - 在 Tensorflow NN 模型中将权重初始化为单位矩阵
问题描述
我对 GitHub 上的一个模型中的神经网络的工作相对较新,我注意到在将权重和偏差初始化为零后,一个单位矩阵被添加到偏差变量中。
weights = tf.get_variable('weights', [256, K*K],
initializer=tf.constant_initializer(0.0),
dtype=tf.float32)
biases = tf.get_variable('biases', [K*K],
initializer=tf.constant_initializer(0.0),
dtype=tf.float32)
biases += tf.constant(np.eye(K).flatten(), dtype=tf.float32)
transform = tf.matmul(net, weights)
transform = tf.nn.bias_add(transform, biases)
它是这个模型特有的还是这是一种常见的做法?如果是这样,将偏差初始化为单位矩阵的目的是什么?
解决方案
将您的权重初始化为零不是您想要的。正如 fPecc 所说,随机噪声是一种很好的初始化,否则您可以尝试正态分布。
推荐阅读
- java - Exception 类是已检查还是未检查的异常?
- microsoft-graph-api - 枚举日历事件时出现“重复格式无效”错误
- regex - 为什么 ex (vim) 将匹配模式捕获到行尾
- flexbox - Bootstrap 4 和断点
- android - 升级到 Android Gradle 插件 3.2 后,Gradle 构建中的 Findbugs 失败
- firefox - Firefox Quantum ESR PKCS11 - 如何通过脚本或配置设置加载
- pentaho - 最新版本的 pentaho 解决了 pentaho 8.1 中的 oracle 错误
- c# - 修改 IList 查询语句
- java - entityManager.remove(class) 不起作用
- php - 如何在不使用 PHP MVC 中的 Extend 的情况下将数据库操作层与 BaseModel 层分离?