Code: Alles auswählen
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D, Dropout
from tensorflow.keras import layers
from tensorflow.keras.utils import to_categorical
import tensorflow_datasets as tfds
import seaborn as sns
import os # noch rausfinden, was dieses Package bringt
import PIL
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.style.use("fivethirtyeight")
import sklearn
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
import sklearn.metrics as metrics
tf.keras.datasets.mnist.load_data(path="mnist.npz")
Data1 = tf.keras.datasets.mnist.load_data()
Data1
builder = tfds.builder("Data1")
info = builder.info
(x_train, y_train), (x_test, y_test) = Data1
print(type(x_train))
print(type(y_train))
print(type(x_test))
print(type(y_test))
print("x_train shape:", x_train.shape)
print("y_train shape:", y_train.shape)
print("x_test shape:", x_test.shape)
print("y_test shape:", y_test.shape)
y_train
df_y_train = pd.DataFrame(y_train)
df_y_train.head()
df_y_train[0].value_counts(sort=False)
df_y_train[0].value_counts(normalize=True)
y_test
df_y_test = pd.DataFrame(y_test)
df_y_test.head()
df_y_test[0].value_counts(sort=False)
df_y_test[0].value_counts(normalize=True)
index = 1
classification = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
print("the image class is:", classification[y_train[index][1]])
index = 1
x_train[index]
img = plt.imshow(x_train[index])
print("the image label is:", y_train[index])
print(y_train)
f, ax = plt.subplots(figsize=(16, 16))
sns.heatmap(index, annot=True, fmt='.1f', square=True, cmap="YlGnBu")
plt.show()
y_train_one_hot = to_categorical(y_train)
y_test_one_hot = to_categorical(y_test)
print(y_train_one_hot)
print("the one hot label is:", y_train_one_hot[index])
x_train = x_train / 255
x_test = x_test / 255
model = Sequential()
model.add(Conv2D(28, (5,5), activation = "relu", input_shape = (28, 28, 2)))
model.add(MaxPooling2D(pool_size = (2, 2)))
model.add(Conv2D(28, (5,5), activation = "relu"))
model.add(MaxPooling2D(pool_size = (2, 2)))
model.add(Flatten())
model.add(Dense(1000, activation = "relu"))
model.add(Dropout(0.5))
model.add(Dense(500, activation = "relu"))
model.add(Dropout(0.5))
model.add(Dense(250, activation = "relu"))
model.add(Dense(10, activation = "softmax"))
model.compile(loss=keras.losses.categorical_crossentropy,
optimizer=keras.optimizers.Adadelta(),
metrics=['accuracy'])
hist = model.fit(x_train, y_train_one_hot,
batch_size = 256,
epochs = 10,
verbose=1,
validation_split = 0.2, shuffle=True)
from sklearn.naive_bayes import GaussianNB
gnb=GaussianNB()
model = gnb.fit(x_train, y_train_one_hot)
history = model.fit(x_train, y_train_one_hot, batch_size=32, epochs=10,
verbose=1,
validation_split=0.2, shuffle=True)