Skip to main content

What’s happening inside a Convolutional Neural Network (CNN)?


In general, a Convolutional Neural Network (CNN) consists of an input layer, hidden layers, and an output layer. Real-world CNNs are nonlinear because they include activation functions that introduce nonlinearity.

In our case, the model takes a single input, which is passed to a 13-dimensional linear layer, followed by a nonlinear 13-dimensional tanh activation layer. The output from this layer is then passed through another 13-dimensional linear layer that produces a single output value.

Linear layers contain weights and biases, following the equation y = mx + b, while the tanh activation function outputs values in the range [-1, 1].


1. What’s happening overall

The text explains how PyTorch stores and updates the weights and biases (called parameters) of a small neural network built using nn.Sequential.

A “parameter” is just a number that the model can learn, like weights and biases.


2. model.parameters()

When you call model.parameters(), PyTorch collects all the weights and biases from every layer in your model.


[param.shape for param in seq_model.parameters()]
# Output:
[torch.Size([13, 1]), torch.Size([13]), torch.Size([1, 13]), torch.Size([1])]
  

This means:

  • First layer weights: [13, 1]
  • First layer bias: [13]
  • Second layer weights: [1, 13]
  • Second layer bias: [1]

These are the exact numbers the optimizer (like SGD or Adam) will update during training.


3. After backward()

When you run loss.backward(), PyTorch calculates how each parameter should change (the gradient).

  1. Compute loss
  2. Call loss.backward() → get gradients
  3. Call optimizer.step() → update weights

4. named_parameters()

This function gives you the names of the parameters along with their values.


for name, param in seq_model.named_parameters():
    print(name, param.shape)

# Output:
0.weight torch.Size([13, 1])
0.bias torch.Size([13])
2.weight torch.Size([1, 13])
2.bias torch.Size([1])
  

Here 0 and 2 are the layer order numbers inside nn.Sequential.


5. Using OrderedDict for readable names


from collections import OrderedDict
seq_model = nn.Sequential(OrderedDict([
    ('hidden_linear', nn.Linear(1, 8)),
    ('hidden_activation', nn.Tanh()),
    ('output_linear', nn.Linear(8, 1))
]))
  

Now the parameters look more descriptive:


hidden_linear.weight torch.Size([8, 1])
hidden_linear.bias torch.Size([8])
output_linear.weight torch.Size([1, 8])
output_linear.bias torch.Size([1])

  

6. Accessing specific parameters


seq_model.output_linear.bias

# Output:
Parameter containing:
tensor([-0.0173], requires_grad=True)
  

This means it’s a bias value that will be updated during training.


7. Checking gradients

After training, you can see how much each parameter changed by checking its .grad value:


seq_model.hidden_linear.weight.grad
  

This shows how each weight in the hidden layer changed after training.


Summary Table

Concept Meaning
parameters() Collects all weights and biases of the model
named_parameters() Same, but includes names for easier identification
loss.backward() Calculates gradients (how much each parameter should change)
optimizer.step() Updates all parameters using those gradients
OrderedDict Lets you name your layers instead of using numbers
.grad Shows the gradient of a parameter after backpropagation

In short: PyTorch tracks every learnable weight and bias in your model, computes their gradients when you train, and updates them using the optimizer to make the model perform better.


Further Reading


People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

Simulation of ASK, FSK, and PSK using MATLAB Simulink (with Online Simulator)

๐Ÿ“˜ Overview ๐Ÿงฎ How to use MATLAB Simulink ๐Ÿงฎ Simulation of ASK using MATLAB Simulink ๐Ÿงฎ Simulation of FSK using MATLAB Simulink ๐Ÿงฎ Simulation of PSK using MATLAB Simulink ๐Ÿงฎ Simulator for ASK, FSK, and PSK ๐Ÿงฎ Digital Signal Processing Simulator ๐Ÿ“š Further Reading ASK, FSK & PSK HomePage MATLAB Simulation Simulation of Amplitude Shift Keying (ASK) using MATLAB Simulink In Simulink, we pick different components/elements from MATLAB Simulink Library. Then we connect the components and perform a particular operation. Result A sine wave source, a pulse generator, a product block, a mux, and a scope are shown in the diagram above. The pulse generator generates the '1' and '0' bit sequences. Sine wave sources produce a specific amplitude and frequency. The scope displays the modulated signal as well as the original bit sequence created by the pulse generator. Mux i...

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. ๐Ÿ“˜ Theory ๐Ÿงฎ Simulators ๐Ÿ’ป MATLAB Code ๐Ÿ“š Resources BER Definition SNR Formula BER Calculator MATLAB Comparison ๐Ÿ“‚ Explore M-ary QAM, PSK, and QPSK Topics ▼ ๐Ÿงฎ Constellation Simulator: M-ary QAM ๐Ÿงฎ Constellation Simulator: M-ary PSK ๐Ÿงฎ BER calculation for ASK, FSK, and PSK ๐Ÿงฎ Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit for a...

Antenna Gain-Combining Methods - EGC, MRC, SC, and RMSGC

๐Ÿ“˜ Overview ๐Ÿงฎ Equal gain combining (EGC) ๐Ÿงฎ Maximum ratio combining (MRC) ๐Ÿงฎ Selective combining (SC) ๐Ÿงฎ Root mean square gain combining (RMSGC) ๐Ÿงฎ Zero-Forcing (ZF) Combining ๐Ÿงฎ MATLAB Code ๐Ÿ“š Further Reading  There are different antenna gain-combining methods. They are as follows. 1. Equal gain combining (EGC) 2. Maximum ratio combining (MRC) 3. Selective combining (SC) 4. Root mean square gain combining (RMSGC) 5. Zero-Forcing (ZF) Combining  1. Equal gain combining method Equal Gain Combining (EGC) is a diversity combining technique in which the receiver aligns the phase of the received signals from multiple antennas (or channels) but gives them equal amplitude weight before summing. This means each received signal is phase-corrected to be coherent with others, but no scaling is applied based on signal strength or channel quality (unlike MRC). Mathematically, for received signa...

Constellation Diagrams of ASK, PSK, and FSK (with MATLAB Code + Simulator)

Constellation Diagrams: ASK, FSK, and PSK Comprehensive guide to signal space representation, including interactive simulators and MATLAB implementations. ๐Ÿ“˜ Overview ๐Ÿงฎ Simulator ⚖️ Theory ๐Ÿ“š Resources Definitions Constellation Tool Key Points MATLAB Code ๐Ÿ“‚ Other Topics: M-ary PSK & QAM Diagrams ▼ ๐Ÿงฎ Simulator for M-ary PSK Constellation ๐Ÿงฎ Simulator for M-ary QAM Constellation BASK (Binary ASK) Modulation Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1. BFSK (Binary FSK) Modulation Transmits one ...

Coherence Bandwidth and Coherence Time (with MATLAB + Simulator)

๐Ÿงฎ Coherence Bandwidth ๐Ÿงฎ Coherence Time ๐Ÿงฎ MATLAB Code s ๐Ÿ“š Further Reading For Doppler Delay or Multi-path Delay Coherence time T coh ∝ 1 / v max (For slow fading, coherence time T coh is greater than the signaling interval.) Coherence bandwidth W coh ∝ 1 / ฯ„ max (For frequency-flat fading, coherence bandwidth W coh is greater than the signaling bandwidth.) Where: T coh = coherence time W coh = coherence bandwidth v max = maximum Doppler frequency (or maximum Doppler shift) ฯ„ max = maximum excess delay (maximum time delay spread) Notes: The notation v max −1 and ฯ„ max −1 indicate inverse proportionality. Doppler spread refers to the range of frequency shifts caused by relative motion, determining T coh . Delay spread (or multipath delay spread) determines W coh . Frequency-flat fading occurs when W coh is greater than the signaling bandwidth. Coherence Bandwidth Coherence bandwidth is...

OFDM Symbols and Subcarriers Explained

This article explains how OFDM (Orthogonal Frequency Division Multiplexing) symbols and subcarriers work. It covers modulation, mapping symbols to subcarriers, subcarrier frequency spacing, IFFT synthesis, cyclic prefix, and transmission. Step 1: Modulation First, modulate the input bitstream. For example, with 16-QAM , each group of 4 bits maps to one QAM symbol. Suppose we generate a sequence of QAM symbols: s0, s1, s2, s3, s4, s5, …, s63 Step 2: Mapping Symbols to Subcarriers Assume N sub = 8 subcarriers. Each OFDM symbol in the frequency domain contains 8 QAM symbols (one per subcarrier): Mapping (example) OFDM symbol 1 → s0, s1, s2, s3, s4, s5, s6, s7 OFDM symbol 2 → s8, s9, s10, s11, s12, s13, s14, s15 … OFDM sym...

BER performance of QPSK with BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc (MATLAB + Simulator)

๐Ÿ“˜ Overview ๐Ÿ“š QPSK vs BPSK and QAM: A Comparison of Modulation Schemes in Wireless Communication ๐Ÿ“š Real-World Example ๐Ÿงฎ MATLAB Code ๐Ÿ“š Further Reading   QPSK provides twice the data rate compared to BPSK. However, the bit error rate (BER) is approximately the same as BPSK at low SNR values when gray coding is used. On the other hand, QPSK exhibits similar spectral efficiency to 4-QAM and 16-QAM under low SNR conditions. In very noisy channels, QPSK can sometimes achieve better spectral efficiency than 4-QAM or 16-QAM. In practical wireless communication scenarios, QPSK is commonly used along with QAM techniques, especially where adaptive modulation is applied. Modulation Bits/Symbol Points in Constellation Usage Notes BPSK 1 2 Very robust, used in weak signals QPSK 2 4 Balanced speed & reliability 4-QAM ...

ASK, FSK, and PSK (with MATLAB + Online Simulator)

๐Ÿ“˜ ASK Theory ๐Ÿ“˜ FSK Theory ๐Ÿ“˜ PSK Theory ๐Ÿ“Š Comparison ๐Ÿงฎ MATLAB Codes ๐ŸŽฎ Simulator ASK or OFF ON Keying ASK is a simple (less complex) Digital Modulation Scheme where we vary the modulation signal's amplitude or voltage by the message signal's amplitude or voltage. We select two levels (two different voltage levels) for transmitting modulated message signals. Example: "+5 Volt" (upper level) and "0 Volt" (lower level). To transmit binary bit "1", the transmitter sends "+5 Volts", and for bit "0", it sends no power. The receiver uses filters to detect whether a binary "1" or "0" was transmitted. Fig 1: Output of ASK, FSK, and PSK modulation using MATLAB for a data stream "1 1 0 0 1 0 1 0" ( Get MATLAB Code ) ...