Escolar Documentos
Profissional Documentos
Cultura Documentos
IMAGEM MÉDICA
AMBIENTE DE TRABALHO
Para executarem os exercicios que irão ser propostos devem preparar o ambiente de trabalho
com o seguinte sw:
Para os alunos que prefiram ter uma maquina virtual com tudo já instalado coloquei uma
maquina virtual (Ubuntu 16.10+opencv+keras + ...) num servidor da DI em:
https://reposlink.di.uminho.pt/uploads/
d98e0b93a1b61d7dc996fe03052468fe.file.ubuntu16.10DLalunos.zip
Essa maquina tem o anaconda instalado e está configurada com ambientes.
Para trabalharem no ambiente correcto devem executar: source activate keras-test
Devem fazer o upgrade para o keras2:
pip install git+git://github.com/fchollet/keras.git --upgrade
podem fazer as instalações e upgrades tanto utilizando o conda como o pip mas sempre
dentro do ambiente keras-test
2
REDE CNN-2D UTILIZANDO KERAS
https://www.cs.toronto.edu/~kriz/cifar.html
3
AULA4 – CNN (CORES)
4
AULA4 – CNN (CORES)
5
AULA4 – CNN (CORES)
6
AULA4 – CNN (CORES)
7
AULA4 – CNN (CORES)
def visualize_cifar10():
(X_train, y_train), (X_test, y_test) = cifar10.load_data()
#(X_train, y_train), (X_test, y_test) = load_cfar10_dataset()
print(y_train)
for i in range(0, 9):# cria uma grelha com 3x3 imagens
plt.subplot(330 + 1 + i)
plt.imshow(toimage(X_train[i]))
plt.show()
8
AULA4 – CNN (CORES)
9
AULA4 – CNN (CORES)
10
AULA4 – CNN (CORES)
11
AULA4 – CNN (CORES)
12
AULA4 – CNN (CORES)
13
AULA4 – CNN (CORES)
def cfar10_utilizando_cnn_simples():
(X_train, y_train), (X_test, y_test) = cifar10.load_data()
#(X_train, y_train), (X_test, y_test) = load_cfar10_dataset()
# normalize inputs from 0-255 to 0.0-1.0
X_train = X_train.astype('float32') #converter de inteiro para real
X_test = X_test.astype('float32')
X_train = X_train / 255.0
X_test = X_test / 255.0
# transformar o label que é um inteiro em categorias binárias, o valor passa a ser o
correspondente à posição
# a classe 5 passa a ser a lista [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
num_classes = y_test.shape[1]
epochs = 5 #25
model = create_compile_model_cnn_cifar10_simples(num_classes,epochs)
print(model.summary())
print_model(model,"cifar10_simples.png")
# treino do modelo: epochs=5, batch size = 32
history=model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=epochs,
batch_size=32, verbose=2)
print_history_accuracy(history)
#print_history_loss(history)
# Avaliação final com os casos de teste
scores = model.evaluate(X_test, y_test, verbose=0)
print('Scores: ', scores)
print("Accuracy: %.2f%%" % (scores[1]*100))
print("Erro modelo CNN cifar10 simples: %.2f%%" % (100-scores[1]*100))
14
AULA4 – CNN (CORES)
def cfar10_utilizando_cnn_plus():
(X_train, y_train), (X_test, y_test) = cifar10.load_data()
#(X_train, y_train), (X_test, y_test) = load_cfar10_dataset()
# normalize inputs from 0-255 to 0.0-1.0
X_train = X_train.astype('float32') #converter de inteiro para real
X_test = X_test.astype('float32')
X_train = X_train / 255.0
X_test = X_test / 255.0
# transformar o label que é um inteiro em categorias binárias, o valor passa a ser o
correspondente à posição
# a classe 5 passa a ser a lista [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
num_classes = y_test.shape[1]
epochs = 5 #25
model = create_compile_model_cnn_cifar10_plus(num_classes,epochs)
print(model.summary())
print_model(model,"cifar10_plus.png")
# treino do modelo: epochs=5, batch size = 64
history=model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=epochs,
batch_size=64, verbose=2)
print_history_accuracy(history)
#print_history_loss(history)
# Avaliação final com os casos de teste
scores = model.evaluate(X_test, y_test, verbose=0)
print('Scores: ', scores)
print("Accuracy: %.2f%%" % (scores[1]*100))
print("Erro modelo CNN cifar10 simples: %.2f%%" % (100-scores[1]*100))
15
AULA4 – CNN (CORES)
if __name__ == '__main__':
#visualize_cifar10()
#cfar10_utilizando_cnn_simples()
cfar10_utilizando_cnn_plus()
16