Giter VIP home page Giter VIP logo

image-classification-transfer-learning's Introduction

Image-Classification-Transfer-Learning

Building ResNet152V2 Model for Image Classification with Small Dataset (95% accuracy)

Number of classes: 20 (Classes 0-19)

Classes = owl | galaxy | lightning | wine-bottle | t-shirt | waterfall | sword | school-bus | calculator | sheet-music | airplanes | lightbulb | skyscraper | mountain-bike | fireworks | computer-monitor | bear | grand-piano | kangaroo | laptop ]


Dataset Structure
Two folders:
Training: 1554 images
Test: 500 images

Images per class:

school-bus : 73
laptop : 100
t-shirt : 100
grand-piano : 70
waterfall : 70
galaxy : 56
mountain-bike : 57
sword : 77
wine-bottle : 76
owl : 95
fireworks : 75
calculator : 75
sheet-music : 59
lightbulb : 67
bear : 77
computer-monitor : 100
airplanes : 100
skyscraper : 70
lightning : 100
kangaroo : 57   

visualization of training data

image classification with transfer learning

Result

The accuracy of the training reached 99.5% in 50 epoch.
The accuracy of the test reached 95% that i submitted to kaggle.

result resnet152

CSV file for kaggle submission

predicted_class_indices=np.argmax(pred,axis=1)
labels = train_gen.class_indices
labels = dict((v,k) for k,v in labels.items())
predictions = [k for k in predicted_class_indices]

filenames=test_gen.filenames
FN=[]
for i in filenames:
  f = i[5:]
  FN.append(f)
 
results=pd.DataFrame({"Id":FN,
                      "Category":predictions})
results.to_csv("submission.csv",index=False)

image-classification-transfer-learning's People

Contributors

miladfa7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

image-classification-transfer-learning's Issues

Facing issue to execute.

CLASS_NAMES = np.array(['owl','galaxy', 'lightning','wine-bottle','t-shirt','waterfall', 'sword', 'school-bus',
'calculator','sheet-music','airplanes', 'lightbulb', 'skyscraper','mountain-bike','fireworks',
'computer-monitor','bear','grand-piano','kangaroo','laptop',], dtype='<U10')

import matplotlib.pyplot as plt

def show_batch(image_batch, label_batch):
plt.figure(figsize=(25,20))
for n in range(8):
ax = plt.subplot(1,8,n+1)
plt.imshow(image_batch[n])
plt.title(CLASS_NAMES[label_batch[n]==1][0].title())
plt.axis('off')

image_batch, label_batch = next(train_gen)
show_batch(image_batch, label_batch)


TypeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_21468/164695082.py in
13 plt.axis('off')
14
---> 15 image_batch, label_batch = next(train_gen)
16 show_batch(image_batch, label_batch)

c:\users\hp\anaconda3\envs\myenv\lib\site-packages\keras_preprocessing\image\iterator.py in next(self, *args, **kwargs)
102
103 def next(self, *args, **kwargs):
--> 104 return self.next(*args, **kwargs)
105
106 def next(self):

c:\users\hp\anaconda3\envs\myenv\lib\site-packages\keras_preprocessing\image\iterator.py in next(self)
114 # The transformation of images is not under thread lock
115 # so it can be done in parallel
--> 116 return self._get_batches_of_transformed_samples(index_array)
117
118 def _get_batches_of_transformed_samples(self, index_array):

c:\users\hp\anaconda3\envs\myenv\lib\site-packages\keras_preprocessing\image\iterator.py in _get_batches_of_transformed_samples(self, index_array)
229 target_size=self.target_size,
230 interpolation=self.interpolation)
--> 231 x = img_to_array(img, data_format=self.data_format)
232 # Pillow images should be closed after load_img,
233 # but not PIL images.

c:\users\hp\anaconda3\envs\myenv\lib\site-packages\keras_preprocessing\image\utils.py in img_to_array(img, data_format, dtype)
307 # or (channel, height, width)
308 # but original PIL image has format (width, height, channel)
--> 309 x = np.asarray(img, dtype=dtype)
310 if len(x.shape) == 3:
311 if data_format == 'channels_first':

c:\users\hp\anaconda3\envs\myenv\lib\site-packages\numpy\core_asarray.py in asarray(a, dtype, order)
81
82 """
---> 83 return array(a, dtype, copy=False, order=order)
84
85

TypeError: array() takes 1 positional argument but 2 were given

ResNet152V2 Model

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.