import tensorflow.keras as keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras.utils import to_categorical
from keras.preprocessing import image
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from keras.utils import to_categorical
from sklearn.metrics import accuracy_score
from tqdm import tqdm
from numpy.random import RandomState
import csv

def cnn():
    df = pd.read_csv('dataset\water_potability.csv')
    print(df.head(3500))
    #splitting the dataset in training and testing sets.
    rng = RandomState()
    train = df.sample(frac=0.7, random_state=rng)
    test = df.loc[~df.index.isin(train.index)]
    #model's structure
    model = Sequential()
    #convolutional layer
    model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',input_shape=(28,28,1)))
    model.add(Conv2D(64, (3, 3), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))
    #flatten output of conv
    model.add(Flatten())
    #hidden layer
    model.add(Dense(128, activation='relu')) 
    #output layer
    model.add(Dense(10, activation='softmax')) 
    #compiling sequential model
    model.compile(loss='categorical_crossentropy',optimizer='Adam',metrics=['accuracy'])
    model.summary()


