!pip list | grep "torch"
torch 2.4.0
torchvision 0.19.0
download_url(search_images_ddg('elephant', max_images=2)[0], 'Data/elephant.jpg', show_progress=False)
im = Image.open('Data/elephant.jpg')
im.to_thumb(256,256)
download_url(search_images_ddg('tiger', max_images=1)[0], 'Data/tiger.jpg', show_progress=False)
Image.open('Data/tiger.jpg').to_thumb(256,256)
download_url(search_images_ddg('panda', max_images=2)[0], 'Data/panda.jpg', show_progress=False)
Image.open('Data/panda.jpg').to_thumb(256,256)
path = Path('Data/animal_pics') #Replace with folder path
animals = ('chimpanzee', 'elephant', 'giraffe',
'kangaroo','lion','panda','rabbit',
'rhino', 'tiger', 'wolf')
functions.create_data_folder(
path,
animals,
)
Create folder
Number of images failed: 118
resizing images for: chimpanzee
resizing images for: elephant
/home/ben-24/miniconda3/envs/fast/lib/python3.9/site-packages/PIL/Image.py:1056: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
resizing images for: giraffe
resizing images for: kangaroo
/home/ben-24/miniconda3/envs/fast/lib/python3.9/site-packages/PIL/Image.py:1056: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
resizing images for: lion
resizing images for: panda
/home/ben-24/miniconda3/envs/fast/lib/python3.9/site-packages/PIL/Image.py:1056: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
/home/ben-24/miniconda3/envs/fast/lib/python3.9/site-packages/PIL/Image.py:1056: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
/home/ben-24/miniconda3/envs/fast/lib/python3.9/site-packages/PIL/Image.py:1056: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
resizing images for: rabbit
resizing images for: rhino
/home/ben-24/miniconda3/envs/fast/lib/python3.9/site-packages/PIL/Image.py:1056: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
/home/ben-24/miniconda3/envs/fast/lib/python3.9/site-packages/PIL/Image.py:1056: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
resizing images for: tiger
/home/ben-24/miniconda3/envs/fast/lib/python3.9/site-packages/PIL/Image.py:1056: UserWarning: Palette images with Transparency expressed in bytes should be converted to RGBA images
warnings.warn(
resizing images for: wolf
from fastai.metrics import accuracy, error_rate
dls = DataBlock(
blocks=(ImageBlock, CategoryBlock),
get_items=get_image_files,
splitter=RandomSplitter(valid_pct=0.2, seed=42),
get_y=parent_label,
item_tfms=[Resize(192, method='squish')]
).dataloaders(path)
dls.show_batch(max_n=6)
Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /home/ben-24/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 44.7M/44.7M [00:07<00:00, 6.02MB/s]
epoch | train_loss | valid_loss | accuracy | error_rate | time |
---|---|---|---|---|---|
0 | 1.986059 | 0.449849 | 0.873239 | 0.126761 | 00:11 |
epoch | train_loss | valid_loss | accuracy | error_rate | time |
---|---|---|---|---|---|
0 | 0.604429 | 0.363233 | 0.904225 | 0.095775 | 00:04 |
features, labels = learn11.get_preds(dl=dls.valid)
# Replace 'val_features' with your extracted features
tsne = TSNE(n_components=2)
reduced_features = tsne.fit_transform(features)
# Replace 'labels' with your image labels if available
plt.scatter(reduced_features[:, 0], reduced_features[:, 1])
plt.xlabel('t-SNE Dimension 1')
plt.ylabel('t-SNE Dimension 2')
plt.title('t-SNE Visualization')
plt.show()
animal_list = ('chimpanzee','elephant','giraffe',
'kangaroo', 'lion','panda', 'rabbit',
'rhino','tiger','wolf')
image= 'Data/panda.jpg'
is_real,_,probs = learn11.predict(PILImage.create(image))
max_value, max_index = torch.max(probs, dim=0)
print(f"This is a: {animal_list[max_index]} with probability: {max_value}.")
Image.open(image).to_thumb(256,256)
This is a: panda with probability: 0.9999741315841675.
animal_list = ('chimpanzee','elephant','giraffe',
'kangaroo', 'lion','panda', 'rabbit',
'rhino','tiger','wolf')
for index, value in enumerate(animal_list):
np.set_printoptions(suppress=True, precision=4)
print(f"Probability of {value} is :{probs[index]:4f}.")
Probability of chimpanzee is :0.000000.
Probability of elephant is :0.000000.
Probability of giraffe is :0.000000.
Probability of kangaroo is :0.000000.
Probability of lion is :0.000015.
Probability of panda is :0.999974.
Probability of rabbit is :0.000000.
Probability of rhino is :0.000000.
Probability of tiger is :0.000000.
Probability of wolf is :0.000010.