Skip to content

amitrajitbose/cat-v-dog-classifier-pytorch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cat Vs Dog Classifier

About

In this project, we build an algorithm, a deep learning model to classify whether images contain either a dog or a cat. This is easy for humans, dogs, and cats. Computers find it a bit more difficult.

Data

The dataset is available at Kaggle and has been provided officially by Microsoft Research.You can find it here.

Requirements

We recommend to create a virtual environment using conda or virtualenv, and then setup environment using pip install -r requirements.txt for setting up the environment. We have used Python 3.6.7 for development. Below is the detailed

torch==1.1.0 torchvision==0.3.0 Flask==1.0.3 Pillow==6.0.0 numpy==1.15.4 pandas==0.23.4 matplotlib==3.0.2 requests==2.22.0 

Benchmarks

Our algorithm or model matched an average of 98% accuracy on test set. The best submission on Kaggle for the same is 98.9%. For more details you can check the leaderboard.

Below is the snapshot that was generated when we were training the model and validating its performance.

API (REST) Endpoint

Running The Server

  • Run python app.py to start the server, with default port as 8123.
  • To run on custom port, run python app.py [PORT].

Accessing The API

cURL
curl -X POST \ http://127.0.0.1:8123/api \ -H 'content-type: application/json' \ -d '{"url":"https://images.unsplash.com/photo-1491604612772-6853927639ef?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=334&q=80"}' 
Python
>>> import requests, os >>> url = 'http://127.0.0.1:8123/api' >>> data = { "url":"https://images.unsplash.com/photo-1491604612772-6853927639ef?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=334&q=80" } >>> req = requests.post(url, json=data) >>> req.json() {'class': 'dog', 'confidence': '0.8944258093833923'} 

Architecture

We used a 121-layer DenseNet with a custom classifier for training the above network. It was trained on a GPU and it took approximately 30 minutes for a single epoch. Below is the Keras styled in-detail model summary, generated using torchsummary.

View Complete Architecture
---------------------------------------------------------------- Layer (type) Output Shape Param # ================================================================ Conv2d-1 [-1, 64, 122, 122] 9,408 BatchNorm2d-2 [-1, 64, 122, 122] 128 ReLU-3 [-1, 64, 122, 122] 0 MaxPool2d-4 [-1, 64, 61, 61] 0 BatchNorm2d-5 [-1, 64, 61, 61] 128 ReLU-6 [-1, 64, 61, 61] 0 Conv2d-7 [-1, 128, 61, 61] 8,192 BatchNorm2d-8 [-1, 128, 61, 61] 256 ReLU-9 [-1, 128, 61, 61] 0 Conv2d-10 [-1, 32, 61, 61] 36,864 BatchNorm2d-11 [-1, 96, 61, 61] 192 ReLU-12 [-1, 96, 61, 61] 0 Conv2d-13 [-1, 128, 61, 61] 12,288 BatchNorm2d-14 [-1, 128, 61, 61] 256 ReLU-15 [-1, 128, 61, 61] 0 Conv2d-16 [-1, 32, 61, 61] 36,864 BatchNorm2d-17 [-1, 128, 61, 61] 256 ReLU-18 [-1, 128, 61, 61] 0 Conv2d-19 [-1, 128, 61, 61] 16,384 BatchNorm2d-20 [-1, 128, 61, 61] 256 ReLU-21 [-1, 128, 61, 61] 0 Conv2d-22 [-1, 32, 61, 61] 36,864 BatchNorm2d-23 [-1, 160, 61, 61] 320 ReLU-24 [-1, 160, 61, 61] 0 Conv2d-25 [-1, 128, 61, 61] 20,480 BatchNorm2d-26 [-1, 128, 61, 61] 256 ReLU-27 [-1, 128, 61, 61] 0 Conv2d-28 [-1, 32, 61, 61] 36,864 BatchNorm2d-29 [-1, 192, 61, 61] 384 ReLU-30 [-1, 192, 61, 61] 0 Conv2d-31 [-1, 128, 61, 61] 24,576 BatchNorm2d-32 [-1, 128, 61, 61] 256 ReLU-33 [-1, 128, 61, 61] 0 Conv2d-34 [-1, 32, 61, 61] 36,864 BatchNorm2d-35 [-1, 224, 61, 61] 448 ReLU-36 [-1, 224, 61, 61] 0 Conv2d-37 [-1, 128, 61, 61] 28,672 BatchNorm2d-38 [-1, 128, 61, 61] 256 ReLU-39 [-1, 128, 61, 61] 0 Conv2d-40 [-1, 32, 61, 61] 36,864 BatchNorm2d-41 [-1, 256, 61, 61] 512 ReLU-42 [-1, 256, 61, 61] 0 Conv2d-43 [-1, 128, 61, 61] 32,768 AvgPool2d-44 [-1, 128, 30, 30] 0 BatchNorm2d-45 [-1, 128, 30, 30] 256 ReLU-46 [-1, 128, 30, 30] 0 Conv2d-47 [-1, 128, 30, 30] 16,384 BatchNorm2d-48 [-1, 128, 30, 30] 256 ReLU-49 [-1, 128, 30, 30] 0 Conv2d-50 [-1, 32, 30, 30] 36,864 BatchNorm2d-51 [-1, 160, 30, 30] 320 ReLU-52 [-1, 160, 30, 30] 0 Conv2d-53 [-1, 128, 30, 30] 20,480 BatchNorm2d-54 [-1, 128, 30, 30] 256 ReLU-55 [-1, 128, 30, 30] 0 Conv2d-56 [-1, 32, 30, 30] 36,864 BatchNorm2d-57 [-1, 192, 30, 30] 384 ReLU-58 [-1, 192, 30, 30] 0 Conv2d-59 [-1, 128, 30, 30] 24,576 BatchNorm2d-60 [-1, 128, 30, 30] 256 ReLU-61 [-1, 128, 30, 30] 0 Conv2d-62 [-1, 32, 30, 30] 36,864 BatchNorm2d-63 [-1, 224, 30, 30] 448 ReLU-64 [-1, 224, 30, 30] 0 Conv2d-65 [-1, 128, 30, 30] 28,672 BatchNorm2d-66 [-1, 128, 30, 30] 256 ReLU-67 [-1, 128, 30, 30] 0 Conv2d-68 [-1, 32, 30, 30] 36,864 BatchNorm2d-69 [-1, 256, 30, 30] 512 ReLU-70 [-1, 256, 30, 30] 0 Conv2d-71 [-1, 128, 30, 30] 32,768 BatchNorm2d-72 [-1, 128, 30, 30] 256 ReLU-73 [-1, 128, 30, 30] 0 Conv2d-74 [-1, 32, 30, 30] 36,864 BatchNorm2d-75 [-1, 288, 30, 30] 576 ReLU-76 [-1, 288, 30, 30] 0 Conv2d-77 [-1, 128, 30, 30] 36,864 BatchNorm2d-78 [-1, 128, 30, 30] 256 ReLU-79 [-1, 128, 30, 30] 0 Conv2d-80 [-1, 32, 30, 30] 36,864 BatchNorm2d-81 [-1, 320, 30, 30] 640 ReLU-82 [-1, 320, 30, 30] 0 Conv2d-83 [-1, 128, 30, 30] 40,960 BatchNorm2d-84 [-1, 128, 30, 30] 256 ReLU-85 [-1, 128, 30, 30] 0 Conv2d-86 [-1, 32, 30, 30] 36,864 BatchNorm2d-87 [-1, 352, 30, 30] 704 ReLU-88 [-1, 352, 30, 30] 0 Conv2d-89 [-1, 128, 30, 30] 45,056 BatchNorm2d-90 [-1, 128, 30, 30] 256 ReLU-91 [-1, 128, 30, 30] 0 Conv2d-92 [-1, 32, 30, 30] 36,864 BatchNorm2d-93 [-1, 384, 30, 30] 768 ReLU-94 [-1, 384, 30, 30] 0 Conv2d-95 [-1, 128, 30, 30] 49,152 BatchNorm2d-96 [-1, 128, 30, 30] 256 ReLU-97 [-1, 128, 30, 30] 0 Conv2d-98 [-1, 32, 30, 30] 36,864 BatchNorm2d-99 [-1, 416, 30, 30] 832 ReLU-100 [-1, 416, 30, 30] 0 Conv2d-101 [-1, 128, 30, 30] 53,248 BatchNorm2d-102 [-1, 128, 30, 30] 256 ReLU-103 [-1, 128, 30, 30] 0 Conv2d-104 [-1, 32, 30, 30] 36,864 BatchNorm2d-105 [-1, 448, 30, 30] 896 ReLU-106 [-1, 448, 30, 30] 0 Conv2d-107 [-1, 128, 30, 30] 57,344 BatchNorm2d-108 [-1, 128, 30, 30] 256 ReLU-109 [-1, 128, 30, 30] 0 Conv2d-110 [-1, 32, 30, 30] 36,864 BatchNorm2d-111 [-1, 480, 30, 30] 960 ReLU-112 [-1, 480, 30, 30] 0 Conv2d-113 [-1, 128, 30, 30] 61,440 BatchNorm2d-114 [-1, 128, 30, 30] 256 ReLU-115 [-1, 128, 30, 30] 0 Conv2d-116 [-1, 32, 30, 30] 36,864 BatchNorm2d-117 [-1, 512, 30, 30] 1,024 ReLU-118 [-1, 512, 30, 30] 0 Conv2d-119 [-1, 256, 30, 30] 131,072 AvgPool2d-120 [-1, 256, 15, 15] 0 BatchNorm2d-121 [-1, 256, 15, 15] 512 ReLU-122 [-1, 256, 15, 15] 0 Conv2d-123 [-1, 128, 15, 15] 32,768 BatchNorm2d-124 [-1, 128, 15, 15] 256 ReLU-125 [-1, 128, 15, 15] 0 Conv2d-126 [-1, 32, 15, 15] 36,864 BatchNorm2d-127 [-1, 288, 15, 15] 576 ReLU-128 [-1, 288, 15, 15] 0 Conv2d-129 [-1, 128, 15, 15] 36,864 BatchNorm2d-130 [-1, 128, 15, 15] 256 ReLU-131 [-1, 128, 15, 15] 0 Conv2d-132 [-1, 32, 15, 15] 36,864 BatchNorm2d-133 [-1, 320, 15, 15] 640 ReLU-134 [-1, 320, 15, 15] 0 Conv2d-135 [-1, 128, 15, 15] 40,960 BatchNorm2d-136 [-1, 128, 15, 15] 256 ReLU-137 [-1, 128, 15, 15] 0 Conv2d-138 [-1, 32, 15, 15] 36,864 BatchNorm2d-139 [-1, 352, 15, 15] 704 ReLU-140 [-1, 352, 15, 15] 0 Conv2d-141 [-1, 128, 15, 15] 45,056 BatchNorm2d-142 [-1, 128, 15, 15] 256 ReLU-143 [-1, 128, 15, 15] 0 Conv2d-144 [-1, 32, 15, 15] 36,864 BatchNorm2d-145 [-1, 384, 15, 15] 768 ReLU-146 [-1, 384, 15, 15] 0 Conv2d-147 [-1, 128, 15, 15] 49,152 BatchNorm2d-148 [-1, 128, 15, 15] 256 ReLU-149 [-1, 128, 15, 15] 0 Conv2d-150 [-1, 32, 15, 15] 36,864 BatchNorm2d-151 [-1, 416, 15, 15] 832 ReLU-152 [-1, 416, 15, 15] 0 Conv2d-153 [-1, 128, 15, 15] 53,248 BatchNorm2d-154 [-1, 128, 15, 15] 256 ReLU-155 [-1, 128, 15, 15] 0 Conv2d-156 [-1, 32, 15, 15] 36,864 BatchNorm2d-157 [-1, 448, 15, 15] 896 ReLU-158 [-1, 448, 15, 15] 0 Conv2d-159 [-1, 128, 15, 15] 57,344 BatchNorm2d-160 [-1, 128, 15, 15] 256 ReLU-161 [-1, 128, 15, 15] 0 Conv2d-162 [-1, 32, 15, 15] 36,864 BatchNorm2d-163 [-1, 480, 15, 15] 960 ReLU-164 [-1, 480, 15, 15] 0 Conv2d-165 [-1, 128, 15, 15] 61,440 BatchNorm2d-166 [-1, 128, 15, 15] 256 ReLU-167 [-1, 128, 15, 15] 0 Conv2d-168 [-1, 32, 15, 15] 36,864 BatchNorm2d-169 [-1, 512, 15, 15] 1,024 ReLU-170 [-1, 512, 15, 15] 0 Conv2d-171 [-1, 128, 15, 15] 65,536 BatchNorm2d-172 [-1, 128, 15, 15] 256 ReLU-173 [-1, 128, 15, 15] 0 Conv2d-174 [-1, 32, 15, 15] 36,864 BatchNorm2d-175 [-1, 544, 15, 15] 1,088 ReLU-176 [-1, 544, 15, 15] 0 Conv2d-177 [-1, 128, 15, 15] 69,632 BatchNorm2d-178 [-1, 128, 15, 15] 256 ReLU-179 [-1, 128, 15, 15] 0 Conv2d-180 [-1, 32, 15, 15] 36,864 BatchNorm2d-181 [-1, 576, 15, 15] 1,152 ReLU-182 [-1, 576, 15, 15] 0 Conv2d-183 [-1, 128, 15, 15] 73,728 BatchNorm2d-184 [-1, 128, 15, 15] 256 ReLU-185 [-1, 128, 15, 15] 0 Conv2d-186 [-1, 32, 15, 15] 36,864 BatchNorm2d-187 [-1, 608, 15, 15] 1,216 ReLU-188 [-1, 608, 15, 15] 0 Conv2d-189 [-1, 128, 15, 15] 77,824 BatchNorm2d-190 [-1, 128, 15, 15] 256 ReLU-191 [-1, 128, 15, 15] 0 Conv2d-192 [-1, 32, 15, 15] 36,864 BatchNorm2d-193 [-1, 640, 15, 15] 1,280 ReLU-194 [-1, 640, 15, 15] 0 Conv2d-195 [-1, 128, 15, 15] 81,920 BatchNorm2d-196 [-1, 128, 15, 15] 256 ReLU-197 [-1, 128, 15, 15] 0 Conv2d-198 [-1, 32, 15, 15] 36,864 BatchNorm2d-199 [-1, 672, 15, 15] 1,344 ReLU-200 [-1, 672, 15, 15] 0 Conv2d-201 [-1, 128, 15, 15] 86,016 BatchNorm2d-202 [-1, 128, 15, 15] 256 ReLU-203 [-1, 128, 15, 15] 0 Conv2d-204 [-1, 32, 15, 15] 36,864 BatchNorm2d-205 [-1, 704, 15, 15] 1,408 ReLU-206 [-1, 704, 15, 15] 0 Conv2d-207 [-1, 128, 15, 15] 90,112 BatchNorm2d-208 [-1, 128, 15, 15] 256 ReLU-209 [-1, 128, 15, 15] 0 Conv2d-210 [-1, 32, 15, 15] 36,864 BatchNorm2d-211 [-1, 736, 15, 15] 1,472 ReLU-212 [-1, 736, 15, 15] 0 Conv2d-213 [-1, 128, 15, 15] 94,208 BatchNorm2d-214 [-1, 128, 15, 15] 256 ReLU-215 [-1, 128, 15, 15] 0 Conv2d-216 [-1, 32, 15, 15] 36,864 BatchNorm2d-217 [-1, 768, 15, 15] 1,536 ReLU-218 [-1, 768, 15, 15] 0 Conv2d-219 [-1, 128, 15, 15] 98,304 BatchNorm2d-220 [-1, 128, 15, 15] 256 ReLU-221 [-1, 128, 15, 15] 0 Conv2d-222 [-1, 32, 15, 15] 36,864 BatchNorm2d-223 [-1, 800, 15, 15] 1,600 ReLU-224 [-1, 800, 15, 15] 0 Conv2d-225 [-1, 128, 15, 15] 102,400 BatchNorm2d-226 [-1, 128, 15, 15] 256 ReLU-227 [-1, 128, 15, 15] 0 Conv2d-228 [-1, 32, 15, 15] 36,864 BatchNorm2d-229 [-1, 832, 15, 15] 1,664 ReLU-230 [-1, 832, 15, 15] 0 Conv2d-231 [-1, 128, 15, 15] 106,496 BatchNorm2d-232 [-1, 128, 15, 15] 256 ReLU-233 [-1, 128, 15, 15] 0 Conv2d-234 [-1, 32, 15, 15] 36,864 BatchNorm2d-235 [-1, 864, 15, 15] 1,728 ReLU-236 [-1, 864, 15, 15] 0 Conv2d-237 [-1, 128, 15, 15] 110,592 BatchNorm2d-238 [-1, 128, 15, 15] 256 ReLU-239 [-1, 128, 15, 15] 0 Conv2d-240 [-1, 32, 15, 15] 36,864 BatchNorm2d-241 [-1, 896, 15, 15] 1,792 ReLU-242 [-1, 896, 15, 15] 0 Conv2d-243 [-1, 128, 15, 15] 114,688 BatchNorm2d-244 [-1, 128, 15, 15] 256 ReLU-245 [-1, 128, 15, 15] 0 Conv2d-246 [-1, 32, 15, 15] 36,864 BatchNorm2d-247 [-1, 928, 15, 15] 1,856 ReLU-248 [-1, 928, 15, 15] 0 Conv2d-249 [-1, 128, 15, 15] 118,784 BatchNorm2d-250 [-1, 128, 15, 15] 256 ReLU-251 [-1, 128, 15, 15] 0 Conv2d-252 [-1, 32, 15, 15] 36,864 BatchNorm2d-253 [-1, 960, 15, 15] 1,920 ReLU-254 [-1, 960, 15, 15] 0 Conv2d-255 [-1, 128, 15, 15] 122,880 BatchNorm2d-256 [-1, 128, 15, 15] 256 ReLU-257 [-1, 128, 15, 15] 0 Conv2d-258 [-1, 32, 15, 15] 36,864 BatchNorm2d-259 [-1, 992, 15, 15] 1,984 ReLU-260 [-1, 992, 15, 15] 0 Conv2d-261 [-1, 128, 15, 15] 126,976 BatchNorm2d-262 [-1, 128, 15, 15] 256 ReLU-263 [-1, 128, 15, 15] 0 Conv2d-264 [-1, 32, 15, 15] 36,864 BatchNorm2d-265 [-1, 1024, 15, 15] 2,048 ReLU-266 [-1, 1024, 15, 15] 0 Conv2d-267 [-1, 512, 15, 15] 524,288 AvgPool2d-268 [-1, 512, 7, 7] 0 BatchNorm2d-269 [-1, 512, 7, 7] 1,024 ReLU-270 [-1, 512, 7, 7] 0 Conv2d-271 [-1, 128, 7, 7] 65,536 BatchNorm2d-272 [-1, 128, 7, 7] 256 ReLU-273 [-1, 128, 7, 7] 0 Conv2d-274 [-1, 32, 7, 7] 36,864 BatchNorm2d-275 [-1, 544, 7, 7] 1,088 ReLU-276 [-1, 544, 7, 7] 0 Conv2d-277 [-1, 128, 7, 7] 69,632 BatchNorm2d-278 [-1, 128, 7, 7] 256 ReLU-279 [-1, 128, 7, 7] 0 Conv2d-280 [-1, 32, 7, 7] 36,864 BatchNorm2d-281 [-1, 576, 7, 7] 1,152 ReLU-282 [-1, 576, 7, 7] 0 Conv2d-283 [-1, 128, 7, 7] 73,728 BatchNorm2d-284 [-1, 128, 7, 7] 256 ReLU-285 [-1, 128, 7, 7] 0 Conv2d-286 [-1, 32, 7, 7] 36,864 BatchNorm2d-287 [-1, 608, 7, 7] 1,216 ReLU-288 [-1, 608, 7, 7] 0 Conv2d-289 [-1, 128, 7, 7] 77,824 BatchNorm2d-290 [-1, 128, 7, 7] 256 ReLU-291 [-1, 128, 7, 7] 0 Conv2d-292 [-1, 32, 7, 7] 36,864 BatchNorm2d-293 [-1, 640, 7, 7] 1,280 ReLU-294 [-1, 640, 7, 7] 0 Conv2d-295 [-1, 128, 7, 7] 81,920 BatchNorm2d-296 [-1, 128, 7, 7] 256 ReLU-297 [-1, 128, 7, 7] 0 Conv2d-298 [-1, 32, 7, 7] 36,864 BatchNorm2d-299 [-1, 672, 7, 7] 1,344 ReLU-300 [-1, 672, 7, 7] 0 Conv2d-301 [-1, 128, 7, 7] 86,016 BatchNorm2d-302 [-1, 128, 7, 7] 256 ReLU-303 [-1, 128, 7, 7] 0 Conv2d-304 [-1, 32, 7, 7] 36,864 BatchNorm2d-305 [-1, 704, 7, 7] 1,408 ReLU-306 [-1, 704, 7, 7] 0 Conv2d-307 [-1, 128, 7, 7] 90,112 BatchNorm2d-308 [-1, 128, 7, 7] 256 ReLU-309 [-1, 128, 7, 7] 0 Conv2d-310 [-1, 32, 7, 7] 36,864 BatchNorm2d-311 [-1, 736, 7, 7] 1,472 ReLU-312 [-1, 736, 7, 7] 0 Conv2d-313 [-1, 128, 7, 7] 94,208 BatchNorm2d-314 [-1, 128, 7, 7] 256 ReLU-315 [-1, 128, 7, 7] 0 Conv2d-316 [-1, 32, 7, 7] 36,864 BatchNorm2d-317 [-1, 768, 7, 7] 1,536 ReLU-318 [-1, 768, 7, 7] 0 Conv2d-319 [-1, 128, 7, 7] 98,304 BatchNorm2d-320 [-1, 128, 7, 7] 256 ReLU-321 [-1, 128, 7, 7] 0 Conv2d-322 [-1, 32, 7, 7] 36,864 BatchNorm2d-323 [-1, 800, 7, 7] 1,600 ReLU-324 [-1, 800, 7, 7] 0 Conv2d-325 [-1, 128, 7, 7] 102,400 BatchNorm2d-326 [-1, 128, 7, 7] 256 ReLU-327 [-1, 128, 7, 7] 0 Conv2d-328 [-1, 32, 7, 7] 36,864 BatchNorm2d-329 [-1, 832, 7, 7] 1,664 ReLU-330 [-1, 832, 7, 7] 0 Conv2d-331 [-1, 128, 7, 7] 106,496 BatchNorm2d-332 [-1, 128, 7, 7] 256 ReLU-333 [-1, 128, 7, 7] 0 Conv2d-334 [-1, 32, 7, 7] 36,864 BatchNorm2d-335 [-1, 864, 7, 7] 1,728 ReLU-336 [-1, 864, 7, 7] 0 Conv2d-337 [-1, 128, 7, 7] 110,592 BatchNorm2d-338 [-1, 128, 7, 7] 256 ReLU-339 [-1, 128, 7, 7] 0 Conv2d-340 [-1, 32, 7, 7] 36,864 BatchNorm2d-341 [-1, 896, 7, 7] 1,792 ReLU-342 [-1, 896, 7, 7] 0 Conv2d-343 [-1, 128, 7, 7] 114,688 BatchNorm2d-344 [-1, 128, 7, 7] 256 ReLU-345 [-1, 128, 7, 7] 0 Conv2d-346 [-1, 32, 7, 7] 36,864 BatchNorm2d-347 [-1, 928, 7, 7] 1,856 ReLU-348 [-1, 928, 7, 7] 0 Conv2d-349 [-1, 128, 7, 7] 118,784 BatchNorm2d-350 [-1, 128, 7, 7] 256 ReLU-351 [-1, 128, 7, 7] 0 Conv2d-352 [-1, 32, 7, 7] 36,864 BatchNorm2d-353 [-1, 960, 7, 7] 1,920 ReLU-354 [-1, 960, 7, 7] 0 Conv2d-355 [-1, 128, 7, 7] 122,880 BatchNorm2d-356 [-1, 128, 7, 7] 256 ReLU-357 [-1, 128, 7, 7] 0 Conv2d-358 [-1, 32, 7, 7] 36,864 BatchNorm2d-359 [-1, 992, 7, 7] 1,984 ReLU-360 [-1, 992, 7, 7] 0 Conv2d-361 [-1, 128, 7, 7] 126,976 BatchNorm2d-362 [-1, 128, 7, 7] 256 ReLU-363 [-1, 128, 7, 7] 0 Conv2d-364 [-1, 32, 7, 7] 36,864 BatchNorm2d-365 [-1, 1024, 7, 7] 2,048 Linear-366 [-1, 512] 524,800 ReLU-367 [-1, 512] 0 Dropout-368 [-1, 512] 0 Linear-369 [-1, 256] 131,328 ReLU-370 [-1, 256] 0 Dropout-371 [-1, 256] 0 Linear-372 [-1, 2] 514 LogSoftmax-373 [-1, 2] 0 ================================================================ Total params: 7,610,498 Trainable params: 7,610,498 Non-trainable params: 0 ---------------------------------------------------------------- Input size (MB): 0.68 Forward/backward pass size (MB): 341.21 Params size (MB): 29.03 Estimated Total Size (MB): 370.92 ---------------------------------------------------------------- 

Related Papers

Team

Issues

Feel free to submit any issues.

Contributions

Currently open to only issues and bug fix related PRs. Feel free to solve an issue and submit a PR.

About

End To End Deep Learning Project For Classifying Cat vs Dog Images, using PyTorch

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published