Data Science CNN use case.
Python programming language and its libraries combined together form the powerful tools for solving Convolutional Neural Networks tasks.
In deep learning, a convolutional neural network or simply CNN is a class of deep neural networks usually applied to analyzing images.
The name “convolutional neural network” indicates that the network performs a mathematical operation called convolution. Convolutional networks are a specialized type of neural networks that use convolution in place of general matrix multiplication in at least one of their layers.
Most common tasks are image and video recognition, recommender systems, image classification, image segmentation, medical image analysis, natural language processing, brain-computer interfaces, and financial time series.
A CNN consists of an input layer, hidden layers and an output layer. In any feed-forward neural network, any middle layers are called hidden because their inputs and outputs are masked by the activation function and final convolution. In a convolutional neural network, the hidden layers include layers that perform convolutions. Typically this includes a layer that does multiplication or other dot product, and its activation function is commonly ReLU. This is followed by other convolution layers such as pooling layers, fully connected layers and normalization layers.
Convolutional Neural Networks (CNN) in Python.
#Importing the libraries import numpy as np import pandas as pd import tensorflow as tf #Checking the tensorflow version tf.__version__ #Importing and Preprocessing the Training set train_datagen = ImageDataGenerator(rescale = 1./255, shear_range = 0.2, zoom_range = 0.2, horizontal_flip = True) training_set = train_datagen.flow_from_directory('dataset/training_set', target_size = (64, 64), batch_size = 32, class_mode = 'binary') #Importing and Preprocessing the Test set test_datagen = ImageDataGenerator(rescale = 1./255) test_set = test_datagen.flow_from_directory('dataset/test_set', target_size = (64, 64), batch_size = 32, class_mode = 'binary') #Initialising the CNN cnn = tf.keras.models.Sequential() #Convolution cnn.add(tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu', input_shape=[64, 64, 3])) #Pooling cnn.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2)) #Adding a second convolutional layer cnn.add(tf.keras.layers.Conv2D(filters=32, kernel_size=3, activation='relu')) cnn.add(tf.keras.layers.MaxPool2D(pool_size=2, strides=2)) #Flattening cnn.add(tf.keras.layers.Flatten()) #Full Connection cnn.add(tf.keras.layers.Dense(units=128, activation='relu')) #Output Layer cnn.add(tf.keras.layers.Dense(units=1, activation='sigmoid')) #Compiling the CNN cnn.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy']) #Training the CNN on the Training set and evaluating it on the Test set cnn.fit(x = training_set, validation_data = test_set, epochs = 25) #Making prediction on a single image from keras.preprocessing import image test_image = image.load_img('dataset/single_prediction/cat_or_dog_1.jpg', target_size = (64, 64)) test_image = image.img_to_array(test_image) test_image = np.expand_dims(test_image, axis = 0) result = cnn.predict(test_image) training_set.class_indices if result == 1: prediction = 'dog' else: prediction = 'cat' print(prediction)