A neural network architecture is like a blueprint for how a computer learns from data. It shows how layers and neurons connect to solve problems like recognizing pictures or understanding speech.
Neural network architecture in ML Python
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense model = Sequential([ Dense(units=64, activation='relu', input_shape=(input_size,)), Dense(units=10, activation='softmax') ])
Sequential means layers are stacked one after another.
Dense layers are fully connected layers where each neuron connects to all neurons in the next layer.
model = Sequential([
Dense(32, activation='relu', input_shape=(20,)),
Dense(1, activation='sigmoid')
])model = Sequential([
Dense(128, activation='relu', input_shape=(100,)),
Dense(64, activation='relu'),
Dense(10, activation='softmax')
])This program creates a small neural network to classify data into 3 categories. It trains on random data and shows the training accuracy and prediction probabilities for a new sample.
import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.utils import to_categorical # Create dummy data: 100 samples, 20 features X = np.random.random((100, 20)) # Create dummy labels for 3 classes y = np.random.randint(3, size=(100,)) y_cat = to_categorical(y, 3) # Build a simple neural network model = Sequential([ Dense(16, activation='relu', input_shape=(20,)), Dense(3, activation='softmax') ]) # Compile the model model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # Train the model history = model.fit(X, y_cat, epochs=5, batch_size=10, verbose=0) # Print training accuracy after last epoch print(f"Training accuracy after 5 epochs: {history.history['accuracy'][-1]:.4f}") # Make a prediction on a new sample new_sample = np.random.random((1, 20)) prediction = model.predict(new_sample) print(f"Prediction probabilities: {prediction[0]}")
Input shape must match the number of features in your data.
Activation functions like 'relu' help the network learn complex patterns.
Output layer activation depends on the task: 'softmax' for multi-class, 'sigmoid' for binary.
Neural network architecture defines how layers and neurons connect to learn from data.
Use Sequential models to stack layers simply.
Choose layer sizes and activations based on your problem type.
Practice
Solution
Step 1: Understand the role of architecture in neural networks
The architecture defines the structure, including layers and neuron connections, which determines how the network learns.Step 2: Eliminate unrelated options
Options about color, speed, or keyboard do not relate to network design or learning.Final Answer:
How layers and neurons are connected to learn from data -> Option BQuick Check:
Neural network architecture = connections and layers [OK]
- Confusing hardware with architecture
- Thinking architecture is about UI design
Solution
Step 1: Recall the correct syntax for creating a Sequential model
In Keras, the Sequential model is created by calling Sequential() with parentheses.Step 2: Identify incorrect syntax
Using lowercase, square brackets, or curly braces is invalid for this class instantiation.Final Answer:
model = Sequential() -> Option AQuick Check:
Use parentheses to create Sequential model [OK]
- Using square or curly brackets
- Using lowercase 'sequence' instead of 'Sequential'
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense model = Sequential() model.add(Dense(10, input_shape=(5,), activation='relu')) model.add(Dense(3, activation='softmax')) print(model.output_shape)
Solution
Step 1: Understand the model layers and their output shapes
The first Dense layer outputs shape (None, 10) because input is (5,) and units=10. The second Dense layer outputs (None, 3) because it has 3 units.Step 2: Identify the final output shape
The model's output shape is the output of the last layer, which is (None, 3). None means batch size is flexible.Final Answer:
(None, 3) -> Option AQuick Check:
Last Dense units = output shape [OK]
- Confusing input shape with output shape
- Ignoring batch size dimension
model = Sequential() model.add(Dense(32, activation='relu')) model.add(Dense(1)) model.compile(optimizer='adam', loss='categorical_crossentropy')
Solution
Step 1: Check the output layer and loss function compatibility
The output layer has 1 unit, likely for regression or binary classification. 'categorical_crossentropy' expects multiple classes, so it's incorrect here.Step 2: Verify other parts
Input shape can be set later or inferred, 'relu' is valid, and 'adam' optimizer is supported.Final Answer:
Loss function 'categorical_crossentropy' is incorrect for single output -> Option CQuick Check:
Loss must match output type [OK]
- Assuming input_shape is always mandatory
- Confusing loss functions for output types
Solution
Step 1: Understand output layer requirements for multi-class classification
For 4 classes, output layer should have 4 units with softmax activation to output class probabilities.Step 2: Check each option's output layer and activations
Input layer -> Dense(16, relu) -> Dense(4, softmax) ends with Dense(4, softmax), which is correct. Others have wrong units or activations for output.Final Answer:
Input layer -> Dense(16, relu) -> Dense(4, softmax) -> Option DQuick Check:
Output units = number of classes, softmax for multi-class [OK]
- Using sigmoid for multi-class output
- Wrong number of output units
- Misplacing activation functions
Ready to prove it?
Pass the test and this pattern moves unknown
