I have trained a ConvNet model with TensorFlow, and I want to get a particular weight in layer. For example in torch7 I would simply access model.modules[2].weights
. to get the weights of layer 2. How would I do the same thing in TensorFlow?
To visualize the weights, you can use a tf. image_summary() op to transform a convolutional filter (or a slice of a filter) into a summary proto, write them to a log using a tf. train. SummaryWriter , and visualize the log using TensorBoard.
Dense(...) . Once you have a handle to this layer object, you can use all of its functionality. For obtaining the weights, just use obj. trainable_weights this returns a list of all the trainable variables found in that layer's scope.
In TensorFlow, trained weights are represented by tf.Variable
objects. If you created a tf.Variable
—e.g. called v
—yourself, you can get its value as a NumPy array by calling sess.run(v)
(where sess
is a tf.Session
).
If you do not currently have a pointer to the tf.Variable
, you can get a list of the trainable variables in the current graph by calling tf.trainable_variables()
. This function returns a list of all trainable tf.Variable
objects in the current graph, and you can select the one that you want by matching the v.name
property. For example:
# Desired variable is called "tower_2/filter:0". var = [v for v in tf.trainable_variables() if v.name == "tower_2/filter:0"][0]
2.0 Compatible Answer: If we build a Model using Keras Sequential API
, we can get the Weights of the Model using the code mentioned below:
!pip install tensorflow==2.1 from tf.keras import Sequential model = Sequential() model.add(Conv2D(filters=conv1_fmaps, kernel_size=conv1_ksize, strides=conv1_stride, padding=conv1_pad, activation=tf.nn.relu, input_shape=(height, width, channels), data_format='channels_last')) model.add(MaxPool2D(pool_size = (2,2), strides= (2,2), padding="VALID")) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(units = 32, activation = 'relu')) model.add(Dense(units = 10, activation = 'softmax')) model.summary() print(model.trainable_variables)
The Last Statement, print(model.trainable_variables)
, will return the Weights of the Model as shown below:
[<tf.Variable 'conv2d/kernel:0' shape=(3, 3, 1, 32) dtype=float32>, <tf.Variable 'conv2d/bias:0' shape=(32,) dtype=float32>, <tf.Variable 'dense/kernel:0' shape=(6272, 32) dtype=float32>, <tf.Variable 'dense/bias:0' shape=(32,) dtype=float32>, <tf.Variable 'dense_1/kernel:0' shape=(32, 10) dtype=float32>, <tf.Variable 'dense_1/bias:0' shape=(10,) dtype=float32>]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With