簡體   English   中英

修改 TensorFlow 神經網絡連接

[英]Modifying TensorFlow Neural Network connections

我使用 Python 3.X 和 TensorFlow 2.0 來創建一個玩具神經網絡模型,如下所示:

model = Sequential()                                                                                                         

model.add(
    Dense(
        units = 2, activation = 'relu',
        kernel_initializer = tf.keras.initializers.GlorotNormal(),
        input_shape = (2,)
        )
    )

model.add(
    Dense(
        units = 2, activation = 'relu',
        kernel_initializer = tf.keras.initializers.GlorotNormal()
        )
    )

model.add(
    Dense(
        units = 1, activation = 'sigmoid'
        )
    )

我現在想以分層方式修改模型的權重/偏差。 我想出的改變模型隨機初始化權重/偏差的連接的代碼是,幅度小於 0.5 的連接應該變為零,而其他的應該保持不變:

for layer in model.trainable_weights:
    layer = tf.where(tf.less(layer, 0.5), 0, layer)

但是,此代碼不會按照我的意願更改連接。 我該怎么辦?

謝謝!

您的代碼只是創建具有所需值的新張量並將它們放入Python變量layer ,但不會如您所願地更改Tensorflow變量。 你需要使用Variable類的assign方法:

for layer in model.trainable_weights:
    layer.assign(tf.where(tf.less(layer, 0.5), 0, layer))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM