【问题标题】:TensorFlow: How to constrain/update only some rows of a variable?TensorFlow:如何仅约束/更新变量的某些行?
【发布时间】:2018-11-07 18:02:03
【问题描述】:

我有一个嵌入矩阵变量

embs = tf.get_variable(name="embs", shape=[total, hidden_size])

我想将规范限制为单位

embs_unit_norm_op = tf.assign(embs, tf.keras.constraints.unit_norm(axis=1)(embs))

但是embs 矩阵太大了,只有一些行被前面的梯度应用步骤改变了。我想通过仅约束/更新这些“活动”嵌入来减少计算量。

我有一个行号列表,例如 e = [1, 3, 5],与嵌入查找中使用的 one-hot ID 相同。如何仅约束/更新这些“活动”嵌入?

【问题讨论】:

    标签: python tensorflow keras deep-learning word-embedding


    【解决方案1】:

    你可以试试tf.scatter_updatetf.scatter_nd_update

    【讨论】:

    • 感谢您指出这一点。你能通过举例来改进你的答案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 2023-03-03
    • 2019-07-05
    • 1970-01-01
    相关资源
    最近更新 更多