initial commit

This commit is contained in:
commit dd0ae28c74
8 changed files with 112 additions and 0 deletions

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
</project>

BIN
Cephalophus_niger.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 KiB

BIN
FELV-cat.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

39
basics.ipynb Normal file
View File

@ -0,0 +1,39 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 7,
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2024-01-04T16:38:33.550511800Z",
"start_time": "2024-01-04T16:38:33.542353Z"
}
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

BIN
cat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

59
main.py Normal file
View File

@ -0,0 +1,59 @@
from PIL import Image
import torch
import torch.nn.functional as F
from torchvision.models.resnet import resnet50, ResNet50_Weights
from torchvision.transforms import transforms
# Load the pre-trained model
model = resnet50(weights=ResNet50_Weights.DEFAULT)
model.eval()
# Define the image transformations
preprocess = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
])
def is_cat(image_path):
# Open the image
img = Image.open(image_path)
# Preprocess the image
img_t = preprocess(img)
batch_t = torch.unsqueeze(img_t, 0)
# Make the prediction
out = model(batch_t)
# Apply softmax to get probabilities
probabilities = F.softmax(out, dim=1)
# Get the maximum predicted class and its probability
max_prob, max_class = torch.max(probabilities, dim=1)
max_prob = max_prob.item()
max_class = max_class.item()
# Check if the maximum predicted class is within the range 281-285
if 281 <= max_class <= 285:
return max_class, max_prob
else:
return max_class, None
image_path = 'pobrane.jpg'
max_class, max_prob = is_cat(image_path)
translator = {
281: "tabby cat",
282: "tiger cat",
283: "persian cat",
284: "siamese cat",
285: "egyptian cat"
}
if max_prob is not None:
print(f"The image is recognized as '{translator[max_class]}' with a probability of {round(max_prob * 100, 2)}%")
else:
print(f"The image is not recognized as a class within the range 281-285 ({max_class})")

BIN
pobrane.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB