Python 修正TensorFlow神经网络连接
我正在使用Python 3.X和TensorFlow 2.0创建一个玩具神经网络模型,如下所示:Python 修正TensorFlow神经网络连接,python,tensorflow,neural-network,Python,Tensorflow,Neural Network,我正在使用Python 3.X和TensorFlow 2.0创建一个玩具神经网络模型,如下所示: model = Sequential() model.add( Dense( units = 2, activation = 'relu', kern
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变量
层
,但不会根据需要更改Tensorflow变量。您需要使用变量
类的赋值
方法:
for layer in model.trainable_weights:
layer.assign(tf.where(tf.less(layer, 0.5), 0, layer))