Skip to content

Instantly share code, notes, and snippets.

@smothiki
Last active April 2, 2024 04:46
Show Gist options
  • Save smothiki/2ab917eec8bace5567b2f7fd9d136e6b to your computer and use it in GitHub Desktop.
Save smothiki/2ab917eec8bace5567b2f7fd9d136e6b to your computer and use it in GitHub Desktop.
train_dir = '/home/cdsw/datasettrees'
import numpy as np
import glob
import os
import matplotlib.pyplot as plt
from PIL import Image
train_list = glob.glob(train_dir+'/**/*.jpg',recursive=True)
print(train_list)
fig = plt.figure()
i=1
random_idx
ax = fig.add_subplot(2,5,i)
img = Image.open("/home/cdsw/datasettrees/peppertrees/images-20.jpg")
plt.imshow(img)
plt.axis('off')
plt.show()
train_dir = '/home/cdsw/datasettrees'
import numpy as np
import glob
import os
import matplotlib.pyplot as plt
from PIL import Image
train_list = glob.glob(train_dir+'/**/*.jpg',recursive=True)
print(train_list)
fig = plt.figure()
i=1
random_idx
ax = fig.add_subplot(2,5,i)
img = Image.open("/home/cdsw/datasettrees/peppertrees/images-20.jpg")
print(img.size)
plt.imshow(img)
plt.axis('off')
plt.show()
arr = np.array(train_list)
np.random.shuffle(arr)
# Display shuffled array
print("Shuffled array: ", arr)
train_list_s=arr
lr =0.001
batch_size=1
epochs = 10
import torch
from torchvision import datasets,models,transforms
device="cuda" if torch.cuda.is_available() else "cpu"
train_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
val_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
from torchvision import datasets
class dataset(torch.utils.data.Dataset):
def __init__(self,file_list,transform = None):
self.file_list=file_list
self.transform=transform
def __len__(self):
self.filelength =len(self.file_list)
return self.filelength
def __getitem__(self,idx):
img_path =self.file_list[idx]
img = Image.open(img_path)
img_transformed = self.transform(img)
label = img_path.split('/')[-2]
if label == 'peppertrees':
label=1
elif label == 'willows':
label=0
return img_transformed,label
from sklearn.model_selection import train_test_split
train_list,val_list = train_test_split(train_list_s , test_size =0.2)
train_data = dataset(train_list,transform=train_transforms)
val_data = dataset(val_list,transform=val_transforms)
train_loader = torch.utils.data.DataLoader(dataset = train_data, batch_size = 1,shuffle = True)
val_loader = torch.utils.data.DataLoader(dataset = val_data, batch_size = 1,shuffle = True)
train_data[0][0].shape
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
class Cnn(nn.Module):
def __init__(self):
super(Cnn,self).__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(3,16,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(16),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.layer2 = nn.Sequential(
nn.Conv2d(16,32,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(32),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.layer3 = nn.Sequential(
nn.Conv2d(32,64,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(64),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.fc1 = nn.Linear(3*3*64,10)
self.dropout = nn.Dropout(0.5)
self.fc2 = nn.Linear(10,2)
self.relu = nn.ReLU()
def forward(self,x):
out =self.layer1(x)
out =self.layer2(out)
out =self.layer3(out)
out =out.view(out.size(0),-1)
out =self.relu(self.fc1(out))
out =self.fc2(out)
return out
model = Cnn().to(device)
model.train()
optimizer = optim.Adam(params = model.parameters(),lr =0.001)
criterion = nn.CrossEntropyLoss()
epochs = 10
for epoch in range(epochs):
epoch_loss =0
epoch_accuracy = 0
for data,label in train_loader:
data= data.to(device)
label = label.to(device)
output = model(data)
loss = criterion(output,label)
optimizer.zero_grad()
loss.backward()
optimizer.step()
acc = ((output.argmax(dim=1)==label).float().mean())
epoch_accuracy += acc/len(train_loader)
epoch_loss += loss/len(train_loader)
print('Epoch : {}, train accuracy : {}, train loss : {}'.format(epoch+1, epoch_accuracy,epoch_loss))
with torch.no_grad():
epoch_val_accuracy =0
epoch_val_loss = 0
for data,label in val_loader:
data= data.to(device)
label = label.to(device)
val_output = model(data)
val_loss = criterion(output,label)
acc = ((output.argmax(dim=1)==label).float().mean())
epoch_val_accuracy += acc/len(val_loader)
epoch_val_loss += val_loss/len(val_loader)
print('Epoch : {}, val_accuracy : {}, val_loss : {}'.format(epoch+1, epoch_val_accuracy,epoch_val_loss))
peppertrees_probs = []
model.eval()
with torch.no_grad():
for data, fileid in val_loader:
data = data.to(device)
preds = model(data)
preds_list = F.softmax(preds, dim=1)[:, 1].tolist()
peppertrees_probs += list(zip(list(fileid), preds_list))
!pip3 install torch torchvision pandas numpy scikie-learn
Collecting torch
Downloading torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl.metadata (26 kB)
Collecting torchvision
Downloading torchvision-0.17.2-cp310-cp310-manylinux1_x86_64.whl.metadata (6.6 kB)
Requirement already satisfied: pandas in /usr/local/lib/python3.10/site-packages (2.1.4)
Requirement already satisfied: numpy in /usr/local/lib/python3.10/site-packages (1.25.2)
ERROR: Could not find a version that satisfies the requirement scikie-learn (from versions: none)
ERROR: No matching distribution found for scikie-learn
!pip3 install torch torchvision pandas numpy scikit-learn
Collecting torch
Using cached torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl.metadata (26 kB)
Collecting torchvision
Using cached torchvision-0.17.2-cp310-cp310-manylinux1_x86_64.whl.metadata (6.6 kB)
Requirement already satisfied: pandas in /usr/local/lib/python3.10/site-packages (2.1.4)
Requirement already satisfied: numpy in /usr/local/lib/python3.10/site-packages (1.25.2)
Collecting scikit-learn
Downloading scikit_learn-1.4.1.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Collecting filelock (from torch)
Downloading filelock-3.13.3-py3-none-any.whl.metadata (2.8 kB)
Requirement already satisfied: typing-extensions>=4.8.0 in /runtime-addons/cmladdon-2.0.45-b37/opt/cmladdons/python/site-packages (from torch) (4.10.0)
Collecting sympy (from torch)
Downloading sympy-1.12-py3-none-any.whl.metadata (12 kB)
Collecting networkx (from torch)
Downloading networkx-3.2.1-py3-none-any.whl.metadata (5.2 kB)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/site-packages (from torch) (3.1.2)
Collecting fsspec (from torch)
Downloading fsspec-2024.3.1-py3-none-any.whl.metadata (6.8 kB)
Collecting nvidia-cuda-nvrtc-cu12==12.1.105 (from torch)
Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-runtime-cu12==12.1.105 (from torch)
Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-cupti-cu12==12.1.105 (from torch)
Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cudnn-cu12==8.9.2.26 (from torch)
Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cublas-cu12==12.1.3.1 (from torch)
Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cufft-cu12==11.0.2.54 (from torch)
Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-curand-cu12==10.3.2.106 (from torch)
Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cusolver-cu12==11.4.5.107 (from torch)
Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cusparse-cu12==12.1.0.106 (from torch)
Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-nccl-cu12==2.19.3 (from torch)
Downloading nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl.metadata (1.8 kB)
Collecting nvidia-nvtx-cu12==12.1.105 (from torch)
Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl.metadata (1.7 kB)
Collecting triton==2.2.0 (from torch)
Downloading triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.4 kB)
Collecting nvidia-nvjitlink-cu12 (from nvidia-cusolver-cu12==11.4.5.107->torch)
Downloading nvidia_nvjitlink_cu12-12.4.99-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /usr/local/lib/python3.10/site-packages (from torchvision) (10.0.1)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/site-packages (from pandas) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/site-packages (from pandas) (2023.3.post1)
Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/site-packages (from pandas) (2023.3)
Collecting scipy>=1.6.0 (from scikit-learn)
Downloading scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB 756.8 kB/s eta 0:00:00 0:00:01
Collecting joblib>=1.2.0 (from scikit-learn)
Downloading joblib-1.3.2-py3-none-any.whl.metadata (5.4 kB)
Collecting threadpoolctl>=2.0.0 (from scikit-learn)
Downloading threadpoolctl-3.4.0-py3-none-any.whl.metadata (13 kB)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas) (1.16.0)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/site-packages (from jinja2->torch) (2.1.2)
Collecting mpmath>=0.19 (from sympy->torch)
Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)
Downloading torch-2.2.2-cp310-cp310-manylinux1_x86_64.whl (755.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 755.5/755.5 MB 1.3 MB/s eta 0:00:00:00:0100:01
Downloading nvidia_cublas_cu12-12.1.3.1-py3-none-manylinux1_x86_64.whl (410.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 410.6/410.6 MB 2.4 MB/s eta 0:00:00:00:0100:01
Downloading nvidia_cuda_cupti_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (14.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.1/14.1 MB 42.4 MB/s eta 0:00:00:00:010:01
Downloading nvidia_cuda_nvrtc_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (23.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.7/23.7 MB 37.7 MB/s eta 0:00:00:00:0100:01
Downloading nvidia_cuda_runtime_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (823 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.6/823.6 kB 9.4 MB/s eta 0:00:00:00:01
Downloading nvidia_cudnn_cu12-8.9.2.26-py3-none-manylinux1_x86_64.whl (731.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 731.7/731.7 MB 1.3 MB/s eta 0:00:00:00:0100:01
Downloading nvidia_cufft_cu12-11.0.2.54-py3-none-manylinux1_x86_64.whl (121.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.6/121.6 MB 10.6 MB/s eta 0:00:0000:0100:01
Downloading nvidia_curand_cu12-10.3.2.106-py3-none-manylinux1_x86_64.whl (56.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.5/56.5 MB 15.5 MB/s eta 0:00:00:00:0100:01
Downloading nvidia_cusolver_cu12-11.4.5.107-py3-none-manylinux1_x86_64.whl (124.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 124.2/124.2 MB 7.8 MB/s eta 0:00:00:00:0100:01
Downloading nvidia_cusparse_cu12-12.1.0.106-py3-none-manylinux1_x86_64.whl (196.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.0/196.0 MB 4.8 MB/s eta 0:00:00:00:0100:01
Downloading nvidia_nccl_cu12-2.19.3-py3-none-manylinux1_x86_64.whl (166.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 166.0/166.0 MB 6.3 MB/s eta 0:00:00:00:0100:01
Downloading nvidia_nvtx_cu12-12.1.105-py3-none-manylinux1_x86_64.whl (99 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 1.6 MB/s eta 0:00:00eta 0:00:01
Downloading triton-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (167.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 167.9/167.9 MB 6.2 MB/s eta 0:00:00:00:0100:01
Downloading torchvision-0.17.2-cp310-cp310-manylinux1_x86_64.whl (6.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.9/6.9 MB 40.1 MB/s eta 0:00:00:00:0100:01
Downloading scikit_learn-1.4.1.post1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.1/12.1 MB 48.3 MB/s eta 0:00:00:00:0100:01
Downloading joblib-1.3.2-py3-none-any.whl (302 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 302.2/302.2 kB 4.4 MB/s eta 0:00:00:00:01
Downloading scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 38.4/38.4 MB 34.1 MB/s eta 0:00:00:00:0100:01
Downloading threadpoolctl-3.4.0-py3-none-any.whl (17 kB)
Downloading filelock-3.13.3-py3-none-any.whl (11 kB)
Downloading fsspec-2024.3.1-py3-none-any.whl (171 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 172.0/172.0 kB 3.2 MB/s eta 0:00:00ta 0:00:01
Downloading networkx-3.2.1-py3-none-any.whl (1.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 20.1 MB/s eta 0:00:00:00:01
Downloading sympy-1.12-py3-none-any.whl (5.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.7/5.7 MB 38.8 MB/s eta 0:00:00:00:0100:01
Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 8.3 MB/s eta 0:00:00:00:01
Downloading nvidia_nvjitlink_cu12-12.4.99-py3-none-manylinux2014_x86_64.whl (21.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 44.1 MB/s eta 0:00:00:00:0100:01
Installing collected packages: mpmath, threadpoolctl, sympy, scipy, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, networkx, joblib, fsspec, filelock, triton, scikit-learn, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nvidia-cusolver-cu12, torch, torchvision
Successfully installed filelock-3.13.3 fsspec-2024.3.1 joblib-1.3.2 mpmath-1.3.0 networkx-3.2.1 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.19.3 nvidia-nvjitlink-cu12-12.4.99 nvidia-nvtx-cu12-12.1.105 scikit-learn-1.4.1.post1 scipy-1.12.0 sympy-1.12 threadpoolctl-3.4.0 torch-2.2.2 torchvision-0.17.2 triton-2.2.0
train_dir = '/home/cdsw/datasettrees'
import numpy as np
import glob
import os
import matplotlib.pyplot as plt
from PIL import Image
train_list = glob.glob(train_dir+'/**/*.jpg',recursive=True)
print(train_list)
['/home/cdsw/datasettrees/willows/images-6.jpg', '/home/cdsw/datasettrees/willows/images-15.jpg', '/home/cdsw/datasettrees/willows/360_F_524473423_hModt8UhxRDhTj8dKWghEqJhcBQkwWnP.jpg', '/home/cdsw/datasettrees/willows/images-2.jpg', '/home/cdsw/datasettrees/willows/images-20.jpg', '/home/cdsw/datasettrees/willows/istockphoto-499568388-612x612-1.jpg', '/home/cdsw/datasettrees/willows/images-11.jpg', '/home/cdsw/datasettrees/willows/images-19.jpg', '/home/cdsw/datasettrees/willows/Salix_babylonica__Saule_pleureur__-_20150810_14h42__11052.jpg', '/home/cdsw/datasettrees/willows/images-8.jpg', '/home/cdsw/datasettrees/willows/images-17.jpg', '/home/cdsw/datasettrees/willows/images-22.jpg', '/home/cdsw/datasettrees/willows/images-4.jpg', '/home/cdsw/datasettrees/willows/images-13.jpg', '/home/cdsw/datasettrees/willows/360_F_552951844_HvzByvaowe9D2r8dWDhUcHXsyhtPWyqr.jpg', '/home/cdsw/datasettrees/willows/stickers-willow-tree.jpg.jpg', '/home/cdsw/datasettrees/willows/Weeping_Willow_4_BB.jpg', '/home/cdsw/datasettrees/willows/images-7.jpg', '/home/cdsw/datasettrees/willows/images-16.jpg', '/home/cdsw/datasettrees/willows/a363f8650d95b0fe815642397aaae277.jpg', '/home/cdsw/datasettrees/willows/weeping-willow-3.jpg', '/home/cdsw/datasettrees/willows/images-21.jpg', '/home/cdsw/datasettrees/willows/images-3.jpg', '/home/cdsw/datasettrees/willows/7d6c6d20fdeaece2f90f8292e1eb3238.jpg', '/home/cdsw/datasettrees/willows/images-12.jpg', '/home/cdsw/datasettrees/willows/images.jpg', '/home/cdsw/datasettrees/willows/How-to-Grow-Willow-Trees-Feature.jpg', '/home/cdsw/datasettrees/willows/b3562eb1fb72b743b6c12baaf6498420.jpg', '/home/cdsw/datasettrees/willows/images-1.jpg', '/home/cdsw/datasettrees/willows/images-10.jpg', '/home/cdsw/datasettrees/willows/images-9.jpg', '/home/cdsw/datasettrees/willows/images-18.jpg', '/home/cdsw/datasettrees/willows/images-5.jpg', '/home/cdsw/datasettrees/willows/images-23.jpg', '/home/cdsw/datasettrees/willows/images-14.jpg', '/home/cdsw/datasettrees/willows/istockphoto-183873951-612x612.jpg', '/home/cdsw/datasettrees/willows/1465db24fe4fde00ddbb17239f444198.jpg', '/home/cdsw/datasettrees/willows/salix-alba2.jpg', '/home/cdsw/datasettrees/willows/istockphoto-466146552-612x612-1.jpg', '/home/cdsw/datasettrees/peppertrees/6274ac1f4b744f98ae22538ba9b70abe.jpg', '/home/cdsw/datasettrees/peppertrees/images-6.jpg', '/home/cdsw/datasettrees/peppertrees/brazilianPepperTree1.jpg', '/home/cdsw/datasettrees/peppertrees/36inch-california-pepper.jpg', '/home/cdsw/datasettrees/peppertrees/images-15.jpg', '/home/cdsw/datasettrees/peppertrees/bc706c898dcf3af18233488a0cee1d301d5a1795r1-960-1011v2_uhq.jpg', '/home/cdsw/datasettrees/peppertrees/images-2.jpg', '/home/cdsw/datasettrees/peppertrees/images-20.jpg', '/home/cdsw/datasettrees/peppertrees/californiaPepperTree1.jpg', '/home/cdsw/datasettrees/peppertrees/images-11.jpg', '/home/cdsw/datasettrees/peppertrees/showimage-22.jpg', '/home/cdsw/datasettrees/peppertrees/California_Pepper_tree-289x300.jpg', '/home/cdsw/datasettrees/peppertrees/images-19.jpg', '/home/cdsw/datasettrees/peppertrees/showimage-22-1.jpg', '/home/cdsw/datasettrees/peppertrees/brazilian-pepper-tree-gress.jpg', '/home/cdsw/datasettrees/peppertrees/Pepper_Tree.jpg', '/home/cdsw/datasettrees/peppertrees/images-8.jpg', '/home/cdsw/datasettrees/peppertrees/images-17.jpg', '/home/cdsw/datasettrees/peppertrees/Schinus molle 01.jpg', '/home/cdsw/datasettrees/peppertrees/images-4.jpg', '/home/cdsw/datasettrees/peppertrees/images-13.jpg', '/home/cdsw/datasettrees/peppertrees/schinusmolle1711b.jpg', '/home/cdsw/datasettrees/peppertrees/images-7.jpg', '/home/cdsw/datasettrees/peppertrees/images-16.jpg', '/home/cdsw/datasettrees/peppertrees/04419488.jpg', '/home/cdsw/datasettrees/peppertrees/images-3.jpg', '/home/cdsw/datasettrees/peppertrees/Schinus molle.jpg', '/home/cdsw/datasettrees/peppertrees/images-12.jpg', '/home/cdsw/datasettrees/peppertrees/1200px-Starr-120403-4053-Schinus_molle-habit_and_park_picnic_tables-Kula-Maui_(25020082412).jpg', '/home/cdsw/datasettrees/peppertrees/images.jpg', '/home/cdsw/datasettrees/peppertrees/images-1.jpg', '/home/cdsw/datasettrees/peppertrees/images-10.jpg', '/home/cdsw/datasettrees/peppertrees/SCH-MOL-w5.jpg', '/home/cdsw/datasettrees/peppertrees/il_340x270.3613079991_qdiu.jpg', '/home/cdsw/datasettrees/peppertrees/images-9.jpg', '/home/cdsw/datasettrees/peppertrees/images-18.jpg', '/home/cdsw/datasettrees/peppertrees/sciter3.0x1800.jpg', '/home/cdsw/datasettrees/peppertrees/b743ac4f86eb5aeba78ea4d010f71771.jpg', '/home/cdsw/datasettrees/peppertrees/images-5.jpg', '/home/cdsw/datasettrees/peppertrees/images-14.jpg', '/home/cdsw/datasettrees/peppertrees/24517148159_6e088b4ef8_b_California-Pepper-Tree.jpg']
fig = plt.figure()
<Figure size 640x480 with 0 Axes>
i=1
random_idx
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[13], line 1
----> 1 random_idx
NameError: name 'random_idx' is not defined
arr = np.array(train_list)
np.random.shuffle(arr)
Display shuffled array
print("Shuffled array: ", arr)
Shuffled array: ['/home/cdsw/datasettrees/willows/istockphoto-466146552-612x612-1.jpg'
'/home/cdsw/datasettrees/peppertrees/images-16.jpg'
'/home/cdsw/datasettrees/peppertrees/images-1.jpg'
'/home/cdsw/datasettrees/willows/1465db24fe4fde00ddbb17239f444198.jpg'
'/home/cdsw/datasettrees/willows/images-14.jpg'
'/home/cdsw/datasettrees/peppertrees/36inch-california-pepper.jpg'
'/home/cdsw/datasettrees/willows/images-16.jpg'
'/home/cdsw/datasettrees/peppertrees/images-14.jpg'
'/home/cdsw/datasettrees/willows/a363f8650d95b0fe815642397aaae277.jpg'
'/home/cdsw/datasettrees/peppertrees/images-17.jpg'
'/home/cdsw/datasettrees/willows/360_F_552951844_HvzByvaowe9D2r8dWDhUcHXsyhtPWyqr.jpg'
'/home/cdsw/datasettrees/willows/images-3.jpg'
'/home/cdsw/datasettrees/peppertrees/sciter3.0x1800.jpg'
'/home/cdsw/datasettrees/peppertrees/Schinus molle 01.jpg'
'/home/cdsw/datasettrees/peppertrees/images.jpg'
'/home/cdsw/datasettrees/willows/images-19.jpg'
'/home/cdsw/datasettrees/peppertrees/images-10.jpg'
'/home/cdsw/datasettrees/peppertrees/images-12.jpg'
'/home/cdsw/datasettrees/peppertrees/6274ac1f4b744f98ae22538ba9b70abe.jpg'
'/home/cdsw/datasettrees/peppertrees/images-9.jpg'
'/home/cdsw/datasettrees/willows/images-6.jpg'
'/home/cdsw/datasettrees/peppertrees/californiaPepperTree1.jpg'
'/home/cdsw/datasettrees/willows/images-4.jpg'
'/home/cdsw/datasettrees/willows/Weeping_Willow_4_BB.jpg'
'/home/cdsw/datasettrees/peppertrees/images-15.jpg'
'/home/cdsw/datasettrees/peppertrees/images-2.jpg'
'/home/cdsw/datasettrees/willows/images-22.jpg'
'/home/cdsw/datasettrees/willows/How-to-Grow-Willow-Trees-Feature.jpg'
'/home/cdsw/datasettrees/willows/Salix_babylonica__Saule_pleureur__-_20150810_14h42__11052.jpg'
'/home/cdsw/datasettrees/peppertrees/04419488.jpg'
'/home/cdsw/datasettrees/willows/images-23.jpg'
'/home/cdsw/datasettrees/peppertrees/California_Pepper_tree-289x300.jpg'
'/home/cdsw/datasettrees/peppertrees/Schinus molle.jpg'
'/home/cdsw/datasettrees/willows/7d6c6d20fdeaece2f90f8292e1eb3238.jpg'
'/home/cdsw/datasettrees/peppertrees/il_340x270.3613079991_qdiu.jpg'
'/home/cdsw/datasettrees/peppertrees/images-13.jpg'
'/home/cdsw/datasettrees/peppertrees/brazilianPepperTree1.jpg'
'/home/cdsw/datasettrees/peppertrees/1200px-Starr-120403-4053-Schinus_molle-habit_and_park_picnic_tables-Kula-Maui_(25020082412).jpg'
'/home/cdsw/datasettrees/peppertrees/Pepper_Tree.jpg'
'/home/cdsw/datasettrees/peppertrees/images-18.jpg'
'/home/cdsw/datasettrees/willows/images-15.jpg'
'/home/cdsw/datasettrees/peppertrees/bc706c898dcf3af18233488a0cee1d301d5a1795r1-960-1011v2_uhq.jpg'
'/home/cdsw/datasettrees/peppertrees/images-4.jpg'
'/home/cdsw/datasettrees/willows/images-1.jpg'
'/home/cdsw/datasettrees/peppertrees/images-6.jpg'
'/home/cdsw/datasettrees/willows/images-17.jpg'
'/home/cdsw/datasettrees/peppertrees/images-8.jpg'
'/home/cdsw/datasettrees/willows/images-8.jpg'
'/home/cdsw/datasettrees/peppertrees/24517148159_6e088b4ef8_b_California-Pepper-Tree.jpg'
'/home/cdsw/datasettrees/willows/images-20.jpg'
'/home/cdsw/datasettrees/willows/weeping-willow-3.jpg'
'/home/cdsw/datasettrees/willows/istockphoto-183873951-612x612.jpg'
'/home/cdsw/datasettrees/willows/images-12.jpg'
'/home/cdsw/datasettrees/willows/istockphoto-499568388-612x612-1.jpg'
'/home/cdsw/datasettrees/willows/images-5.jpg'
'/home/cdsw/datasettrees/willows/images-7.jpg'
'/home/cdsw/datasettrees/willows/images-9.jpg'
'/home/cdsw/datasettrees/peppertrees/SCH-MOL-w5.jpg'
'/home/cdsw/datasettrees/peppertrees/images-20.jpg'
'/home/cdsw/datasettrees/willows/b3562eb1fb72b743b6c12baaf6498420.jpg'
'/home/cdsw/datasettrees/peppertrees/images-5.jpg'
'/home/cdsw/datasettrees/willows/images-10.jpg'
'/home/cdsw/datasettrees/peppertrees/brazilian-pepper-tree-gress.jpg'
'/home/cdsw/datasettrees/peppertrees/images-7.jpg'
'/home/cdsw/datasettrees/peppertrees/images-19.jpg'
'/home/cdsw/datasettrees/willows/images-18.jpg'
'/home/cdsw/datasettrees/peppertrees/images-3.jpg'
'/home/cdsw/datasettrees/peppertrees/b743ac4f86eb5aeba78ea4d010f71771.jpg'
'/home/cdsw/datasettrees/willows/images-21.jpg'
'/home/cdsw/datasettrees/willows/salix-alba2.jpg'
'/home/cdsw/datasettrees/willows/360_F_524473423_hModt8UhxRDhTj8dKWghEqJhcBQkwWnP.jpg'
'/home/cdsw/datasettrees/peppertrees/showimage-22.jpg'
'/home/cdsw/datasettrees/willows/stickers-willow-tree.jpg.jpg'
'/home/cdsw/datasettrees/willows/images-2.jpg'
'/home/cdsw/datasettrees/willows/images.jpg'
'/home/cdsw/datasettrees/peppertrees/schinusmolle1711b.jpg'
'/home/cdsw/datasettrees/willows/images-13.jpg'
'/home/cdsw/datasettrees/willows/images-11.jpg'
'/home/cdsw/datasettrees/peppertrees/showimage-22-1.jpg'
'/home/cdsw/datasettrees/peppertrees/images-11.jpg']
device="cuda" if torch.cuda.is_available() else "cpu"
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[18], line 1
----> 1 device="cuda" if torch.cuda.is_available() else "cpu"
NameError: name 'torch' is not defined
import torch
device="cuda" if torch.cuda.is_available() else "cpu"
train_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[21], line 1
----> 1 train_transforms =transforms.Compose([
2 transforms.Resize((224,224)),
3 transforms.RandomResizedCrop(224),
4 transforms.RandomHorizontalFlip(),
5 transforms.ToTensor()
6
7
8 ])
NameError: name 'transforms' is not defined
import torch
from torchvision import datasets,models,transforms
device="cuda" if torch.cuda.is_available() else "cpu"
train_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
val_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
from torchvision import datasets
class dataset(torch.utils.data.Dataset):
def __init__(self,file_list,transform = None):
self.file_list=file_list
self.transform=transform
def __len__(self):
self.filelength =len(self.file_list)
return self.filelength
def __getitem__(self,idx):
img_path =self.file_list[idx]
img = Image.open(img_path)
img_transformed = self.transform(img)
label = x.split('/')[-2]
if label == 'peppertrees':
label=1
elif label == 'willows':
label=0
return img_transformed,label
from sklearn.model_selection import train_test_split
train_list,val_list = train_test_split(train_list_s , test_size =0.2)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[30], line 1
----> 1 train_list,val_list = train_test_split(train_list_s , test_size =0.2)
NameError: name 'train_list_s' is not defined
train_list_s=arr
import torch
from torchvision import datasets,models,transforms
device="cuda" if torch.cuda.is_available() else "cpu"
train_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
val_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
from torchvision import datasets
class dataset(torch.utils.data.Dataset):
def __init__(self,file_list,transform = None):
self.file_list=file_list
self.transform=transform
def __len__(self):
self.filelength =len(self.file_list)
return self.filelength
def __getitem__(self,idx):
img_path =self.file_list[idx]
img = Image.open(img_path)
img_transformed = self.transform(img)
label = x.split('/')[-2]
if label == 'peppertrees':
label=1
elif label == 'willows':
label=0
return img_transformed,label
from sklearn.model_selection import train_test_split
train_list,val_list = train_test_split(train_list_s , test_size =0.2)
train_data = dataset(train_list,transform=train_transforms)
val_data = dataset(val_list,transform=test_transforms)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[42], line 1
----> 1 val_data = dataset(val_list,transform=test_transforms)
NameError: name 'test_transforms' is not defined
train_list_s=arr
import torch
from torchvision import datasets,models,transforms
device="cuda" if torch.cuda.is_available() else "cpu"
train_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
val_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
from torchvision import datasets
class dataset(torch.utils.data.Dataset):
def __init__(self,file_list,transform = None):
self.file_list=file_list
self.transform=transform
def __len__(self):
self.filelength =len(self.file_list)
return self.filelength
def __getitem__(self,idx):
img_path =self.file_list[idx]
img = Image.open(img_path)
img_transformed = self.transform(img)
label = x.split('/')[-2]
if label == 'peppertrees':
label=1
elif label == 'willows':
label=0
return img_transformed,label
from sklearn.model_selection import train_test_split
train_list,val_list = train_test_split(train_list_s , test_size =0.2)
train_data = dataset(train_list,transform=train_transforms)
val_data = dataset(val_list,transform=val_transforms)
train_loader = torch.utils.data.DataLoader(dataset = train_data, batch_size = batch_size,shuffle = True)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[55], line 1
----> 1 train_loader = torch.utils.data.DataLoader(dataset = train_data, batch_size = batch_size,shuffle = True)
NameError: name 'batch_size' is not defined
train_list_s=arr
lr =0.001
batch_size=10
epochs = 10
import torch
from torchvision import datasets,models,transforms
device="cuda" if torch.cuda.is_available() else "cpu"
train_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
val_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
from torchvision import datasets
class dataset(torch.utils.data.Dataset):
def __init__(self,file_list,transform = None):
self.file_list=file_list
self.transform=transform
def __len__(self):
self.filelength =len(self.file_list)
return self.filelength
def __getitem__(self,idx):
img_path =self.file_list[idx]
img = Image.open(img_path)
img_transformed = self.transform(img)
label = x.split('/')[-2]
if label == 'peppertrees':
label=1
elif label == 'willows':
label=0
return img_transformed,label
from sklearn.model_selection import train_test_split
train_list,val_list = train_test_split(train_list_s , test_size =0.2)
train_data = dataset(train_list,transform=train_transforms)
val_data = dataset(val_list,transform=val_transforms)
train_loader = torch.utils.data.DataLoader(dataset = train_data, batch_size = batch_size,shuffle = True)
val_loader = torch.utils.data.DataLoader(dataset = val_data, batch_size = batch_size,shuffle = True)
train_data[0][0].shape
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[73], line 1
----> 1 train_data[0][0].shape
Cell In[66], line 15, in dataset.__getitem__(self, idx)
12 img = Image.open(img_path)
13 img_transformed = self.transform(img)
---> 15 label = x.split('/')[-2]
16 if label == 'peppertrees':
17 label=1
NameError: name 'x' is not defined
arr = np.array(train_list)
np.random.shuffle(arr)
Display shuffled array
print("Shuffled array: ", arr)
Shuffled array: ['/home/cdsw/datasettrees/peppertrees/images-3.jpg'
'/home/cdsw/datasettrees/willows/images-22.jpg'
'/home/cdsw/datasettrees/peppertrees/images-16.jpg'
'/home/cdsw/datasettrees/peppertrees/36inch-california-pepper.jpg'
'/home/cdsw/datasettrees/peppertrees/images-4.jpg'
'/home/cdsw/datasettrees/willows/Weeping_Willow_4_BB.jpg'
'/home/cdsw/datasettrees/willows/images.jpg'
'/home/cdsw/datasettrees/willows/images-11.jpg'
'/home/cdsw/datasettrees/willows/images-16.jpg'
'/home/cdsw/datasettrees/willows/Salix_babylonica__Saule_pleureur__-_20150810_14h42__11052.jpg'
'/home/cdsw/datasettrees/peppertrees/6274ac1f4b744f98ae22538ba9b70abe.jpg'
'/home/cdsw/datasettrees/peppertrees/images-6.jpg'
'/home/cdsw/datasettrees/peppertrees/images-18.jpg'
'/home/cdsw/datasettrees/peppertrees/images-13.jpg'
'/home/cdsw/datasettrees/willows/images-21.jpg'
'/home/cdsw/datasettrees/peppertrees/California_Pepper_tree-289x300.jpg'
'/home/cdsw/datasettrees/peppertrees/1200px-Starr-120403-4053-Schinus_molle-habit_and_park_picnic_tables-Kula-Maui_(25020082412).jpg'
'/home/cdsw/datasettrees/peppertrees/sciter3.0x1800.jpg'
'/home/cdsw/datasettrees/willows/images-20.jpg'
'/home/cdsw/datasettrees/willows/images-13.jpg'
'/home/cdsw/datasettrees/peppertrees/images-10.jpg'
'/home/cdsw/datasettrees/willows/images-19.jpg'
'/home/cdsw/datasettrees/willows/How-to-Grow-Willow-Trees-Feature.jpg'
'/home/cdsw/datasettrees/willows/salix-alba2.jpg'
'/home/cdsw/datasettrees/peppertrees/images-20.jpg'
'/home/cdsw/datasettrees/peppertrees/images-1.jpg'
'/home/cdsw/datasettrees/peppertrees/24517148159_6e088b4ef8_b_California-Pepper-Tree.jpg'
'/home/cdsw/datasettrees/peppertrees/Schinus molle 01.jpg'
'/home/cdsw/datasettrees/peppertrees/schinusmolle1711b.jpg'
'/home/cdsw/datasettrees/willows/images-10.jpg'
'/home/cdsw/datasettrees/willows/images-3.jpg'
'/home/cdsw/datasettrees/willows/images-6.jpg'
'/home/cdsw/datasettrees/peppertrees/images-9.jpg'
'/home/cdsw/datasettrees/peppertrees/b743ac4f86eb5aeba78ea4d010f71771.jpg'
'/home/cdsw/datasettrees/peppertrees/images-19.jpg'
'/home/cdsw/datasettrees/peppertrees/images-8.jpg'
'/home/cdsw/datasettrees/willows/images-17.jpg'
'/home/cdsw/datasettrees/peppertrees/showimage-22-1.jpg'
'/home/cdsw/datasettrees/willows/a363f8650d95b0fe815642397aaae277.jpg'
'/home/cdsw/datasettrees/peppertrees/californiaPepperTree1.jpg'
'/home/cdsw/datasettrees/willows/images-14.jpg'
'/home/cdsw/datasettrees/peppertrees/bc706c898dcf3af18233488a0cee1d301d5a1795r1-960-1011v2_uhq.jpg'
'/home/cdsw/datasettrees/peppertrees/images-15.jpg'
'/home/cdsw/datasettrees/willows/images-4.jpg'
'/home/cdsw/datasettrees/willows/360_F_524473423_hModt8UhxRDhTj8dKWghEqJhcBQkwWnP.jpg'
'/home/cdsw/datasettrees/willows/istockphoto-466146552-612x612-1.jpg'
'/home/cdsw/datasettrees/peppertrees/images-2.jpg'
'/home/cdsw/datasettrees/willows/images-5.jpg'
'/home/cdsw/datasettrees/peppertrees/04419488.jpg'
'/home/cdsw/datasettrees/willows/images-1.jpg'
'/home/cdsw/datasettrees/willows/stickers-willow-tree.jpg.jpg'
'/home/cdsw/datasettrees/willows/images-18.jpg'
'/home/cdsw/datasettrees/willows/images-15.jpg'
'/home/cdsw/datasettrees/peppertrees/il_340x270.3613079991_qdiu.jpg'
'/home/cdsw/datasettrees/willows/images-23.jpg'
'/home/cdsw/datasettrees/peppertrees/images-7.jpg'
'/home/cdsw/datasettrees/peppertrees/images-12.jpg'
'/home/cdsw/datasettrees/willows/weeping-willow-3.jpg'
'/home/cdsw/datasettrees/peppertrees/brazilian-pepper-tree-gress.jpg'
'/home/cdsw/datasettrees/peppertrees/Pepper_Tree.jpg'
'/home/cdsw/datasettrees/peppertrees/images-11.jpg'
'/home/cdsw/datasettrees/willows/images-8.jpg'
'/home/cdsw/datasettrees/peppertrees/Schinus molle.jpg'
'/home/cdsw/datasettrees/peppertrees/images-14.jpg']
train_list_s=arr
lr =0.001
batch_size=10
epochs = 10
import torch
from torchvision import datasets,models,transforms
device="cuda" if torch.cuda.is_available() else "cpu"
train_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
val_transforms =transforms.Compose([
transforms.Resize((224,224)),
transforms.RandomResizedCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()
])
from torchvision import datasets
class dataset(torch.utils.data.Dataset):
def __init__(self,file_list,transform = None):
self.file_list=file_list
self.transform=transform
def __len__(self):
self.filelength =len(self.file_list)
return self.filelength
def __getitem__(self,idx):
img_path =self.file_list[idx]
img = Image.open(img_path)
img_transformed = self.transform(img)
label = img_path.split('/')[-2]
if label == 'peppertrees':
label=1
elif label == 'willows':
label=0
return img_transformed,label
from sklearn.model_selection import train_test_split
train_list,val_list = train_test_split(train_list_s , test_size =0.2)
train_data = dataset(train_list,transform=train_transforms)
val_data = dataset(val_list,transform=val_transforms)
train_loader = torch.utils.data.DataLoader(dataset = train_data, batch_size = batch_size,shuffle = True)
val_loader = torch.utils.data.DataLoader(dataset = val_data, batch_size = batch_size,shuffle = True)
train_data[0][0].shape
torch.Size([3, 224, 224])
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
class Cnn(nn.Module):
def __init__(self):
super(Cnn,self).__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(3,16,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(16),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.layer2 = nn.Sequential(
nn.Conv2d(16,32,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(32),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.layer3 = nn.Sequential(
nn.Conv2d(32,64,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(64),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.fc1 = nn.Linear(3*3*64,10)
self.dropout = nn.Dropout(0.5)
self.fc2 = nn.Linear(10,2)
self.relu = nn.ReLU()
def forward(self,x):
out =self.layer1(x)
out =self.layer2(out)
out =self.layer3(out)
out =out.view(out.size(0),-1)
out =self.relu(self.fc1(out))
out =self.fc2(out)
return out
model = Cnn().to(device)
model.train()
Cnn(
(layer1): Sequential(
(0): Conv2d(3, 16, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(layer2): Sequential(
(0): Conv2d(16, 32, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(layer3): Sequential(
(0): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(fc1): Linear(in_features=576, out_features=10, bias=True)
(dropout): Dropout(p=0.5, inplace=False)
(fc2): Linear(in_features=10, out_features=2, bias=True)
(relu): ReLU()
)
optimizer = optim.Adam(params = model.parameters(),lr =0.001)
criterion = nn.CrossEntropyLoss()
epochs = 10
for epoch in range(epochs):
epoch_loss =0
epoch_accuracy = 0
for data,label in train_loader:
data= data.to(device)
label = label.to(device)
output = model(data)
loss = criterion(output,label)
optimizer.zero_grad()
loss.backward()
optimizer.step()
acc = ((output.argmax(dim=1)==label).float().mean())
epoch_accuracy += acc/len(train_loader)
epoch_loss += loss/len(train_loader)
print('Epoch : {}, train accuracy : {}, train loss : {}'.format(epoch+1, epoch_accuracy,epoch_loss))
with torch.no_grad():
epoch_val_accuracy =0
epoch_val_loss = 0
for data,label in val_loader:
data= data.to(device)
label = label.to(device)
val_output = model(data)
val_loss = criterion(output,label)
acc = ((output.argmax(dim=1)==label).float().mean())
epoch_val_accuracy += acc/len(val_loader)
epoch_val_loss += val_loss/len(val_loader)
print('Epoch : {}, val_accuracy : {}, val_loss : {}'.format(epoch+1, epoch_val_accuracy,epoch_val_loss))
Epoch : 1, train accuracy : 0.5833333730697632, train loss : 0.6701809167861938
epochs = 10
for epoch in range(epochs):
epoch_loss =0
epoch_accuracy = 0
for data,label in train_loader:
data= data.to(device)
label = label.to(device)
output = model(data)
loss = criterion(output,label)
optimizer.zero_grad()
loss.backward()
optimizer.step()
acc = ((output.argmax(dim=1)==label).float().mean())
epoch_accuracy += acc/len(train_loader)
epoch_loss += loss/len(train_loader)
print('Epoch : {}, train accuracy : {}, train loss : {}'.format(epoch+1, epoch_accuracy,epoch_loss))
with torch.no_grad():
epoch_val_accuracy =0
epoch_val_loss = 0
for data,label in val_loader:
data= data.to(device)
label = label.to(device)
val_output = model(data)
val_loss = criterion(output,label)
acc = ((output.argmax(dim=1)==label).float().mean())
epoch_val_accuracy += acc/len(val_loader)
epoch_val_loss += val_loss/len(val_loader)
print('Epoch : {}, val_accuracy : {}, val_loss : {}'.format(epoch+1, epoch_val_accuracy,epoch_val_loss))
Epoch : 1, train accuracy : 0.6000000238418579, train loss : 0.6653110384941101
train_loader = torch.utils.data.DataLoader(dataset = train_data, batch_size = 1,shuffle = True)
val_loader = torch.utils.data.DataLoader(dataset = val_data, batch_size = 1,shuffle = True)
train_data[0][0].shape
torch.Size([3, 224, 224])
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
class Cnn(nn.Module):
def __init__(self):
super(Cnn,self).__init__()
self.layer1 = nn.Sequential(
nn.Conv2d(3,16,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(16),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.layer2 = nn.Sequential(
nn.Conv2d(16,32,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(32),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.layer3 = nn.Sequential(
nn.Conv2d(32,64,kernel_size=3,padding=0,stride=2),
nn.BatchNorm2d(64),
nn.ReLU(),
nn.MaxPool2d(2)
)
self.fc1 = nn.Linear(3*3*64,10)
self.dropout = nn.Dropout(0.5)
self.fc2 = nn.Linear(10,2)
self.relu = nn.ReLU()
def forward(self,x):
out =self.layer1(x)
out =self.layer2(out)
out =self.layer3(out)
out =out.view(out.size(0),-1)
out =self.relu(self.fc1(out))
out =self.fc2(out)
return out
model = Cnn().to(device)
model.train()
Cnn(
(layer1): Sequential(
(0): Conv2d(3, 16, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(layer2): Sequential(
(0): Conv2d(16, 32, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(layer3): Sequential(
(0): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(fc1): Linear(in_features=576, out_features=10, bias=True)
(dropout): Dropout(p=0.5, inplace=False)
(fc2): Linear(in_features=10, out_features=2, bias=True)
(relu): ReLU()
)
optimizer = optim.Adam(params = model.parameters(),lr =0.001)
criterion = nn.CrossEntropyLoss()
epochs = 10
for epoch in range(epochs):
epoch_loss =0
epoch_accuracy = 0
for data,label in train_loader:
data= data.to(device)
label = label.to(device)
output = model(data)
loss = criterion(output,label)
optimizer.zero_grad()
loss.backward()
optimizer.step()
acc = ((output.argmax(dim=1)==label).float().mean())
epoch_accuracy += acc/len(train_loader)
epoch_loss += loss/len(train_loader)
print('Epoch : {}, train accuracy : {}, train loss : {}'.format(epoch+1, epoch_accuracy,epoch_loss))
with torch.no_grad():
epoch_val_accuracy =0
epoch_val_loss = 0
for data,label in val_loader:
data= data.to(device)
label = label.to(device)
val_output = model(data)
val_loss = criterion(output,label)
acc = ((output.argmax(dim=1)==label).float().mean())
epoch_val_accuracy += acc/len(val_loader)
epoch_val_loss += val_loss/len(val_loader)
print('Epoch : {}, val_accuracy : {}, val_loss : {}'.format(epoch+1, epoch_val_accuracy,epoch_val_loss))
Epoch : 1, train accuracy : 0.4901960790157318, train loss : 0.7291350364685059
Epoch : 1, val_accuracy : 0.38461539149284363, val_loss : 0.697265625
Epoch : 2, train accuracy : 0.47058823704719543, train loss : 0.6944888830184937
Epoch : 2, val_accuracy : 0.38461539149284363, val_loss : 0.6965746283531189
Epoch : 3, train accuracy : 0.47058823704719543, train loss : 0.694349467754364
Epoch : 3, val_accuracy : 0.38461539149284363, val_loss : 0.6959150433540344
Epoch : 4, train accuracy : 0.47058823704719543, train loss : 0.6944316029548645
Epoch : 4, val_accuracy : 0.38461539149284363, val_loss : 0.6942923069000244
Epoch : 5, train accuracy : 0.47058823704719543, train loss : 0.6941097378730774
Epoch : 5, val_accuracy : 0.38461539149284363, val_loss : 0.6943653225898743
Epoch : 6, train accuracy : 0.47058823704719543, train loss : 0.6935983300209045
Epoch : 6, val_accuracy : 0.38461539149284363, val_loss : 0.6936085224151611
Epoch : 7, train accuracy : 0.47058823704719543, train loss : 0.6933775544166565
Epoch : 7, val_accuracy : 0.6153846383094788, val_loss : 0.6926975846290588
Epoch : 8, train accuracy : 0.529411792755127, train loss : 0.6932481527328491
Epoch : 8, val_accuracy : 0.6153846383094788, val_loss : 0.6920092105865479
Epoch : 9, train accuracy : 0.529411792755127, train loss : 0.6933977007865906
Epoch : 9, val_accuracy : 0.6153846383094788, val_loss : 0.6914639472961426
Epoch : 10, train accuracy : 0.529411792755127, train loss : 0.7490489482879639
Epoch : 10, val_accuracy : 0.6153846383094788, val_loss : 0.6922484636306763
peppertrees_probs = []
model.eval()
Cnn(
(layer1): Sequential(
(0): Conv2d(3, 16, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(layer2): Sequential(
(0): Conv2d(16, 32, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(layer3): Sequential(
(0): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2))
(1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): ReLU()
(3): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)
(fc1): Linear(in_features=576, out_features=10, bias=True)
(dropout): Dropout(p=0.5, inplace=False)
(fc2): Linear(in_features=10, out_features=2, bias=True)
(relu): ReLU()
)
with torch.no_grad():
for data, fileid in val_loader:
data = data.to(device)
preds = model(data)
preds_list = F.softmax(preds, dim=1)[:, 1].tolist()
peppertrees_probs += list(zip(list(fileid), preds_list))
peppertrees_probs
[(tensor(0), 0.5018537044525146),
(tensor(1), 0.5018537044525146),
(tensor(1), 0.5018537044525146),
(tensor(1), 0.5018537044525146),
(tensor(1), 0.5018537044525146),
(tensor(0), 0.5018537044525146),
(tensor(1), 0.5018537044525146),
(tensor(0), 0.5018537044525146),
(tensor(0), 0.5018537044525146),
(tensor(1), 0.5018537044525146),
(tensor(0), 0.5018537044525146),
(tensor(1), 0.5018537044525146),
(tensor(1), 0.5018537044525146)]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment