# Building Simple Neural Networks with Python

Neural networks are a fundamental part of modern machine learning. Python, with its rich ecosystem of libraries, provides an excellent environment for building simple neural networks. This guide will walk you through the basics of creating neural networks in Python, suitable for beginners.

## Understanding Neural Networks

Before diving into coding, it’s important to understand the basic concepts of neural networks, including neurons, layers, and activation functions.

See also  Difference between the sep and end parameters in Python print statement

To build neural networks in Python, you’ll need an environment with libraries like TensorFlow or PyTorch installed.

``````# Install TensorFlow
pip install tensorflow

# Install PyTorch
# Visit PyTorch's official site for installation instructions
``````

## Creating Your First Neural Network

Here’s an example of how to create a simple neural network using TensorFlow to classify handwritten digits from the MNIST dataset.

``````# Python code for a simple neural network with TensorFlow
import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

# Preprocess data
train_images = train_images.reshape((60000, 28 * 28))
train_images = train_images.astype('float32') / 255

test_images = test_images.reshape((10000, 28 * 28))
test_images = test_images.astype('float32') / 255

# Build the model
model = Sequential([
Dense(512, activation='relu', input_shape=(28 * 28,)),
Dense(10, activation='softmax')
])

# Compile the model
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])

# Train the model
model.fit(train_images, train_labels, epochs=5, batch_size=128)

# Evaluate the model
test_loss, test_acc = model.evaluate(test_images, test_labels)
print('Test accuracy:', test_acc)
``````

## Experimenting with Different Models

Once you’re comfortable with the basics, start experimenting with different architectures, activation functions, and optimizers to see how they affect your model’s performance.