# -*- coding: utf-8 -*- """Untitled20.ipynb Automatically generated by Colaboratory. Original file is located at https://colab.research.google.com/drive/1O_tHcmidNGKAgxAiG7Su44auJSRFR1xA """ import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout from tensorflow.keras.preprocessing.image import ImageDataGenerator image_size = (128, 128) batch_size = 32 train_datagen = ImageDataGenerator( rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True ) test_datagen = ImageDataGenerator(rescale=1./255) train_generator = train_datagen.flow_from_directory( '/content/drive/MyDrive/training', target_size=image_size, batch_size=batch_size, class_mode='binary' ) test_generator = test_datagen.flow_from_directory( '/content/drive/MyDrive/testing', target_size=image_size, batch_size=batch_size, class_mode='binary' ) from tensorflow.keras.models import Sequential model = Sequential() model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(image_size[0], image_size[1], 3))) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Conv2D(128, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.fit(train_generator, epochs=10, validation_data=test_generator) evaluation = model.evaluate(test_generator) print(f"Test Accuracy: {evaluation[1] * 100:.2f}%") predictions = model.predict(test_generator) predicted_labels = (predictions > 0.5).astype(int) from sklearn.metrics import confusion_matrix, classification_report true_labels = test_generator.classes conf_matrix = confusion_matrix(true_labels, predicted_labels) print("Confusion Matrix:") print(conf_matrix) class_report = classification_report(true_labels, predicted_labels, target_names=['not_fractured', 'fractured']) print("Classification Report:") print(class_report) import matplotlib.pyplot as plt import random test_images, true_labels = next(test_generator) predicted_labels = (model.predict(test_images) > 0.5).astype(int) plt.figure(figsize=(12, 8)) for i in range(10): plt.subplot(2, 5, i+1) plt.imshow(test_images[i]) plt.title(f"True: {true_labels[i]}, Predicted: {predicted_labels[i]}") plt.axis('off') plt.show() import cv2 image = cv2.imread('/content/drive/MyDrive/testing/fractured/1-rotated1-rotated1-rotated2.jpg') plt.imshow(image) image.shape image = cv2.resize(image,(256,256)) test_input = image.reshape((1,256,256,3)) image.shape plt.imshow(image) test_input = image.reshape((1,256,256,3)) !pip install keras import keras model = keras.Sequential([ keras.layers.Dense(128, activation="relu"), keras.layers.Dense(64, activation="relu"), keras.layers.Dense(10, activation="softmax") ]) !ls -l model !stat model !file model !pip show tensorflow model.predict(test_input)