Redes Neurais Convolucionais (CNNs) são ferramentas poderosas para tarefas de processamento e reconhecimento de imagens. Eles são projetados para aprender hierarquias espaciais de recursos de forma automática e adaptativa por meio de retropropagação. Vamos mergulhar na construção de uma CNN básica usando Python e TensorFlow/Keras.
Antes de começar, certifique-se de ter as seguintes bibliotecas instaladas:
pip install tensorflow numpy matplotlib
Comece importando as bibliotecas essenciais:
import tensorflow as tf from tensorflow.keras import layers, models import matplotlib.pyplot as plt
Para este exemplo, usaremos o conjunto de dados CIFAR-10, que consiste em 60.000 imagens coloridas 32x32 em 10 classes.
# Load the CIFAR-10 dataset (x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data() # Normalize the pixel values to be between 0 and 1 x_train, x_test = x_train / 255.0, x_test / 255.0
Agora, vamos construir o modelo CNN. Este modelo incluirá as camadas principais: camadas Convolucionais, Pooling e Densas.
model = models.Sequential() # First Convolutional Layer model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3))) model.add(layers.MaxPooling2D((2, 2))) # Second Convolutional Layer model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) # Third Convolutional Layer model.add(layers.Conv2D(64, (3, 3), activation='relu')) # Flatten the output and add Dense layers model.add(layers.Flatten()) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, activation='softmax'))
A compilação do modelo envolve a especificação do otimizador, da função de perda e das métricas a serem monitoradas durante o treinamento.
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
Treine o modelo CNN nos dados de treinamento por algumas épocas.
history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
Após o treinamento, avalie o modelo nos dados de teste para ver seu desempenho.
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2) print(f'\nTest accuracy: {test_acc}')
Finalmente, vamos visualizar a precisão e a perda ao longo das épocas de treinamento.
plt.plot(history.history['accuracy'], label='accuracy') plt.plot(history.history['val_accuracy'], label = 'val_accuracy') plt.xlabel('Epoch') plt.ylabel('Accuracy') plt.ylim([0, 1]) plt.legend(loc='lower right') plt.show()
Este modelo básico da CNN serve como um excelente ponto de partida para lidar com tarefas de classificação de imagens. Ao compreender e modificar esse modelo, você poderá experimentar diferentes arquiteturas e técnicas para aprimorar o desempenho do seu modelo. Continue explorando e ajustando as camadas para construir redes neurais ainda mais poderosas! ?
Este código foi projetado para ser fácil de seguir e modificar, tornando-o adequado para iniciantes e para aqueles que desejam começar a usar CNNs em Python.
Link do blog para arquitetura CNN: https://dev.to/abhinowww/demystifying-cnn-neural-network-layers-a-deep-dive-into-ai-architecture-12d2
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3