The following problems occurred while proceeding with the "Introduction to PyTorch Practice" published by Mynavi Publishing.
As the recommended environment in this document is Jupiter, we have pulled the following from DockerHub:
%docker run --rm-d-v$PWD:/app-p8888:8888\pman0214/pytorch_jupyterlab: 1.9.0
run Command Quotation Site
Pytorch+jupyterlab docker image
for M1 mac peopleFollow the instructions and do the following:
from torchvision import models
alexnet=models.alexnet()
resnet=models.resnet101 (pretrained=True)
from torchvision import transforms
preprocess=transforms.Compose([
transforms.Resize(256)
, transforms.CenterCrop (224)
, transforms.ToTensor()
, transforms.Normalize(
mean = [0.485, 0.456, 0,406]
, std = [0.229,0,224,0.225]
)])
from PIL import Image
img=Image.open("data/bobby.jpeg")
img
If you call img, the image of the dog stored in the folder will be displayed.
The desired behavior is inline
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1280x720 at 0xFFFF65190E80>
I would like it to be displayed as .(The inline display above is printed as "print(img)").
Because if you do the following,
img_t=preprocess(img)
This is because there is no string and it is returned as an error.
------------------------------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-35-5823a1581b62>in<module>
---->1img_t=preprocess(img)
/usr/local/lib/python 3.9/site-packages/torchvision/transforms/transforms.py in __call__(self, img)
58 def__call__(self, img):
59 for tinself.transforms:
--- > 60 img = t (img)
61 return img
62
/usr/local/lib/python 3.9/site-packages/torch/nn/modules/module.py in_call_impl (self, *input, **kwargs)
1049 if not(self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or_global_backward_hooks
1050 or_global_forward_hooks or_global_forward_pre_hooks):
->1051 return forward_call(*input,**kwargs)
1052# Do not call functions when jit is used
1053 full_backward_hooks, non_full_backward_hooks=[],[]
/usr/local/lib/python 3.9/site-packages/torchvision/transforms/transforms.py in forward (self, tensor)
219 Tensor: Normalized Tensor image.
220 """
-->221 return F.normalize (tensor, self.mean, self.std, self.inplace)
222
223 def__repr__(self):
/usr/local/lib/python 3.9/site-packages/torchvision/transforms/functional.py in normalize (tensor, mean, std, place)
328 std=torch.as_tensor(std,dtype=dtype,device=tensor.device)
329 if(std==0).any():
-->330 raise ValueError('stdevalidated to zero after conversion to {}, leading to division by zero.'.format(dtype))
331 if mean.ndim == 1:
332 mean=mean.view(-1,1,1)
ValueError: stde validated to zero after conversion to torch.float32, leading to division by zero.
I looked at various sites, but as with reference books,
img
is inline with
img.show()
displays the image.
Therefore, I could not find an example like this behavior.
I don't know if it's the setting on the jupyterLab side or if the code is wrong in the first place.
Please lend me your wisdom.
By the way, nothing special happened when I ran img.show()
.
Also, we have verified similar behavior when we run it on Google Collaboration.
Thank you for your cooperation.
Now that we have solved the problem, let me tell you the whole story.
Problems
The decimal point and comma of the array to be replaced by mean,std
below were mixed up.
mean=[0.485, 0.456, 0,406]
, std = [0.229,0,224,0.225]
The correct description is as follows.It was an elementary mistake.
mean=[0.485, 0.456, 0.406],
std = [0.229, 0.224, 0.225]
Also, I asked you a question that inline display is not possible, but the in the repository of this document behaves the same way (we did not investigate further as the problem was resolved).
Dear Kunif, Thank you for your cooperation.
615 Uncaught (inpromise) Error on Electron: An object could not be cloned
910 When building Fast API+Uvicorn environment with PyInstaller, console=False results in an error
608 GDB gets version error when attempting to debug with the Presense SDK (IDE)
571 Who developed the "avformat-59.dll" that comes with FFmpeg?
© 2024 OneMinuteCode. All rights reserved.