Tensor example with Simple Python
1. Step-by-step Python Example (Tensor Intuition)
1. Scalar (0D Tensor) — Just a single number
scalar = 5
print("Scalar:", scalar)
2. Vector (1D Tensor) — A list of numbers
vector = [1, 2, 3, 4]
print("Vector:", vector)
3. Matrix (2D Tensor) — A table of numbers
matrix = [
[1, 2, 3],
[4, 5, 6]
]
print("Matrix:")
for row in matrix:
print(row)
4. 3D Tensor — A list of matrices (like pages in a book)
tensor3D = [
[ # Page 1
[1, 2],
[3, 4]
],
[ # Page 2
[5, 6],
[7, 8]
]
]
print("3D Tensor:")
for page in tensor3D:
print("Page:")
for row in page:
print(row)
Interpretation:
- scalar → just one number (0D)
- vector → line of numbers (1D)
- matrix → grid of numbers (2D)
- tensor3D → stacked grids (3D)
2. How a neural network layer might transform tensors using very simple operations like multiplication and addition
Let’s simulate a “Tiny Neural Layer”
Imagine we have:
- Input Vector (1D tensor):values coming from previous layer or data
- Weights (1D tensor):numbers the neural network uses to learn
- Bias (1 number): a small nudge added to the result
Formula Used by a Neuron: Output = (Input × Weights) + Bias
We’ll simulate this with just Python lists.
Example: One Neuron, 3 Inputs
# Input data: e.g., [height, weight, age]
inputs = [2, 3, 1]
# Weights learned by the neuron
weights = [0.5, -1.2, 1.0]
# Bias value
bias = 2.0
# Compute weighted sum
def neuron_output(inputs, weights, bias):
output = 0
for i in range(len(inputs)):
output += inputs[i] * weights[i]
output += bias
return output
# Calculate the result
result = neuron_output(inputs, weights, bias)
print("Neuron Output:", result)
What’s Happening:
| Input | Weight | Input × Weight |
|---|---|---|
| 2 | 0.5 | 1.0 |
| 3 | -1.2 | -3.6 |
| 1 | 1.0 | 1.0 |
| Bias | +2.0 | |
| Total | = 0.4 | |
This is what a neural network layer does:
- Takes inputs (as a tensor)
- Multiplies by weights
- Adds bias
- Passes the result to the next layer (optionally through an activation function)
3. A mini neural network layer with multiple neurons
Part 1: Multiple Neurons in a Layer
Think of this setup:
- Input → [2, 3, 1]
- We have 3 neurons in the layer.
- Each neuron has its own set of weights and bias.
Let’s define the structure:
# Input values
inputs = [2, 3, 1]
# Each sub-list is weights for one neuron
weights = [
[0.5, -1.2, 1.0], # Neuron 1
[-1.0, 2.0, 0.5], # Neuron 2
[1.5, 1.2, -0.5] # Neuron 3
]
# Biases for each neuron
biases = [2.0, 0.5, -1.0]
# Output of each neuron
def layer_output(inputs, weights, biases):
outputs = []
for neuron_weights, bias in zip(weights, biases):
output = 0
for i in range(len(inputs)):
output += inputs[i] * neuron_weights[i]
output += bias
outputs.append(output)
return outputs
# Compute layer output
raw_outputs = layer_output(inputs, weights, biases)
print("Raw outputs before activation:", raw_outputs)
Part 2: Add Activation Function
Let’s apply a simple one: ReLU (Rectified Linear Unit)
- It just says:
- If the output is negative, make it 0
- Otherwise, keep it as-is
# ReLU activation function
def relu(x):
return x if x > 0 else 0
# Apply ReLU to each neuron's output
activated_outputs = [relu(output) for output in raw_outputs]
print("Activated outputs:", activated_outputs)
Final Output:
Now you’ll see how raw outputs may have negative values, but after activation, they’re all non-negative:
Example Output:
Raw outputs before activation: [0.4, 4.0, -1.9]
Activated outputs: [0.4, 4.0, 0]
Why Activation Functions Are Needed?
Without activation:
The network becomes just a giant linear calculator — no matter how many layers you add, the output is always a straight-line-like function.
That means: no curves, no twists, no smart decisions.
Real-life Analogy:
Imagine you’re designing a smart light switch:
- Input: sunlight, motion, time of day
- Without activation: the light turns on in a strictly linear way, like “add 10% light for every 10% sunlight.”
But the world isn’t linear!
- At night, even full motion shouldn’t turn on lights if it’s bedtime
- During bright daylight, motion shouldn’t matter at all
So, we need rules with “if-else” behavior, like: “Only turn on if it’s dark AND there’s motion” → That’s like an activation function deciding what fires and what doesn’t.
What is a Tensor (Primary Concepts) – Visual Roadmap
