Last active
April 2, 2024 04:46
-
-
Save smothiki/2ab917eec8bace5567b2f7fd9d136e6b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
!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