Skip to content
Snippets Groups Projects
Commit 3ed378ba authored by Filip Naiser's avatar Filip Naiser
Browse files

Merge branch 'master' of gitlab.fel.cvut.cz:mishkdmy/mpv-python-assignment-templates

parents 77e0dee3 dcf87f75
No related branches found
No related tags found
No related merge requests found
Showing
with 845 additions and 688 deletions
......@@ -35,6 +35,26 @@ conda env create -f environment-cpu.yml
conda env create -f environment-gpu.yml
```
If way above does not work for you (e.g. you are on Windows), try the following for CPU:
```bash
conda create --name mpv-assignments-cpu-only python=3.6
conda activate mpv-assignments-cpu-only
conda install pytorch torchvision cpuonly -c pytorch
pip install kornia tqdm notebook matplotlib opencv-contrib-python seaborn tensorboard tensorboardX
conda install -c conda-forge widgetsnbextension
conda install -c conda-forge ipywidgets
```
And following for GPU:
```bash
conda create --name mpv-assignments-gpu python=3.6
conda activate mpv-assignments-gpu
conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
pip install kornia tqdm notebook matplotlib opencv-contrib-python seaborn tensorboard tensorboardX
conda install -c conda-forge widgetsnbextension
conda install -c conda-forge ipywidgets
```
**Keep in mind that the assignments and the assignment templates will be updated during the semester. Always pull the current template version before starting to work on an assignment!**
......@@ -7,18 +7,22 @@ import typing
from typing import Tuple, List
from PIL import Image
import os
from tqdm import tqdm
from tqdm import tqdm_notebook as tqdm
from time import time
def get_dataset_statistics(dataset: torch.utils.data.Dataset) -> Tuple[List, List]:
'''Function, that calculates mean and std of a dataset (pixelwise)'''
'''Function, that calculates mean and std of a dataset (pixelwise)
Return:
tuple of Lists of floats. len of each list should equal to number of input image/tensor channels
'''
mean = [0., 0., 0.]
std = [1.0, 1.0, 1.0]
return mean, std
return mean, std
class SimpleCNN(nn.Module):
"""Class, which implements image classifier. """
def __init__(self, num_classes = 10):
super(SimpleCNN, self).__init__()
self.features = nn.Sequential(
......@@ -49,43 +53,68 @@ class SimpleCNN(nn.Module):
nn.Flatten(),
nn.Linear(512, num_classes))
return
def forward(self, input):
"""
Shape:
- Input :math:`(B, C, H, W)`
- Output: :math:`(B, NC)`, where NC is num_classes
"""
x = self.features(input)
return self.clf(x)
def weight_init(m: nn.Module):
def weight_init(m: nn.Module) -> None:
'''Function, which fills-in weights and biases for convolutional and linear layers'''
if isinstance(m, nn.Conv2d) or isinstance(m, nn.Linear):
pass #do something
#do something here. You can access layer weight or bias by m.weight or m.bias
pass #do something
return
def train_single_epoch(model: torch.nn.Module,
def train_and_val_single_epoch(model: torch.nn.Module,
train_loader: torch.utils.data.DataLoader,
val_loader: torch.utils.data.DataLoader,
optim: torch.optim.Optimizer,
loss_fn: torch.nn.Module) -> torch.nn.Module:
'''Function, which runs training over a single epoch in the dataloader and returns the model'''
loss_fn: torch.nn.Module,
epoch_idx = 0,
lr_scheduler = None,
writer = None) -> torch.nn.Module:
'''Function, which runs training over a single epoch in the dataloader and returns the model. Do not forget to set the model into train mode and zero_grad() optimizer before backward.'''
if epoch_idx == 0:
val_acc, val_loss = validate(model, val_loader, loss_fn)
if writer is not None:
writer.add_scalar("Accuracy/val", val_acc, 0)
writer.add_scalar("Loss/val", val_loss, 0)
model.train()
for idx, (data, labels) in tqdm(enumerate(train_loader), total=num_batches):
pass #do something
return model
def lr_find(model, train_dl, loss_fn, min_lr=1e-7, max_lr=100, steps = 50):
'''Function, which runs the mock training over with different learning rates'''
def lr_find(model: torch.nn.Module,
train_dl:torch.utils.data.DataLoader,
loss_fn:torch.nn.Module,
min_lr: float=1e-7, max_lr:float=100, steps:int = 50)-> Tuple:
'''Function, which run the training for a small number of iterations, increasing the learning rate and storing the losses. Model initialization is saved before training and restored after training'''
lrs = np.ones(steps)
losses = np.ones(steps)
return losses, lrs
def validate(model: torch.nn.Module, val_loader: torch.utils.data.DataLoader) -> float:
def validate(model: torch.nn.Module,
val_loader: torch.utils.data.DataLoader,
loss_fn: torch.nn.Module) -> float:
'''Function, which runs the module over validation set and returns accuracy'''
print ("Starting validation")
acc = 0
return acc
loss = 0
for idx, (data, labels) in tqdm(enumerate(val_loader), total=len(val_loader)):
with torch.no_grad():
pass #do something
return acc, loss
class TestFolderDataset(torch.utils.data.Dataset):
''''''
'''Class, which reads images in folder and serves as test dataset'''
def __init__(self, folder_name, transform = None):
return
def __getitem__(self, index):
......@@ -96,7 +125,7 @@ class TestFolderDataset(torch.utils.data.Dataset):
return ln
def get_predictions(model, test_dl):
'''Outputs prediction over test data loader'''
def get_predictions(model: torch.nn.Module, test_dl: torch.utils.data.DataLoader)->torch.Tensor :
'''Function, which predicts class indexes for image in data loader. Ouput shape: [N, 1], where N is number of image in the dataset'''
out = torch.zeros(len(test_dl)).long()
return out
This diff is collapsed.
assignment_6_7_cnn_template/training-imagenette-CNN_files/att_00000.png

27.1 KiB

assignment_6_7_cnn_template/training-imagenette-CNN_files/att_00001.png

70.9 KiB

assignment_6_7_cnn_template/training-imagenette-CNN_files/att_00002.png

114 KiB

assignment_6_7_cnn_template/training-imagenette-CNN_files/att_00003.png

28.7 KiB

assignment_6_7_cnn_template/training-imagenette-CNN_files/att_00004.png

111 KiB

assignment_6_7_cnn_template/training-imagenette-CNN_files/att_00005.png

123 KiB

name: mpv-assignments-cpu-only
channels:
- pytorch
- conda-forge
- defaults
dependencies:
- _anaconda_depends=2019.03=py36_0
- _libgcc_mutex=0.1=main
- alabaster=0.7.12=py36_0
- anaconda=custom=py36_1
- anaconda-client=1.7.2=py36_0
- anaconda-project=0.8.4=py_0
- asn1crypto=1.3.0=py36_0
- astroid=2.3.3=py36_0
- astropy=4.0=py36h7b6447c_0
- atomicwrites=1.3.0=py36_1
- attrs=19.3.0=py_0
- babel=2.8.0=py_0
- backcall=0.1.0=py36_0
- backports=1.0=py_2
- backports.os=0.1.1=py36_0
- backports.shutil_get_terminal_size=1.0.0=py36_2
- beautifulsoup4=4.8.2=py36_0
- bitarray=1.2.1=py36h7b6447c_0
- bkcharts=0.2=py36_0
- blas=1.0=mkl
- bleach=3.1.0=py36_0
- blosc=1.16.3=hd408876_0
- bokeh=1.4.0=py36_0
- boto=2.49.0=py36_0
- bottleneck=1.3.1=py36hdd07704_0
- bzip2=1.0.8=h7b6447c_0
- ca-certificates=2020.1.1=0
- cairo=1.14.12=h8948797_3
- certifi=2019.11.28=py36_0
- cffi=1.14.0=py36h2e261b9_0
- chardet=3.0.4=py36_1003
- click=7.0=py36_0
- cloudpickle=1.3.0=py_0
- clyent=1.2.2=py36_1
- colorama=0.4.3=py_0
- contextlib2=0.6.0.post1=py_0
- cpuonly=1.0=0
- cryptography=2.8=py36h1ba5d50_0
- curl=7.68.0=hbc83047_0
- cycler=0.10.0=py36_0
- cython=0.29.15=py36he6710b0_0
- cytoolz=0.10.1=py36h7b6447c_0
- dask=2.10.1=py_0
- dask-core=2.10.1=py_0
- dbus=1.13.12=h746ee38_0
- decorator=4.4.1=py_0
- defusedxml=0.6.0=py_0
- distributed=2.10.0=py_0
- docutils=0.16=py36_0
- entrypoints=0.3=py36_0
- et_xmlfile=1.0.1=py36_0
- expat=2.2.6=he6710b0_0
- fastcache=1.1.0=py36h7b6447c_0
- flask=1.1.1=py_0
- fontconfig=2.13.0=h9420a91_0
- freetype=2.9.1=h8a8886c_1
- fribidi=1.0.5=h7b6447c_0
- fsspec=0.6.2=py_0
- get_terminal_size=1.0.0=haa9412d_0
- gevent=1.4.0=py36h7b6447c_0
- glib=2.63.1=h5a9c865_0
- gmp=6.1.2=h6c8ec71_1
- gmpy2=2.0.8=py36h10f8cd9_2
- graphite2=1.3.13=h23475e2_0
- greenlet=0.4.15=py36h7b6447c_0
- gst-plugins-base=1.14.0=hbbd80ab_1
- gstreamer=1.14.0=hb453b48_1
- h5py=2.10.0=py36h7918eee_0
- harfbuzz=1.8.8=hffaf4a1_0
- hdf5=1.10.4=hb1b8bf9_0
- heapdict=1.0.1=py_0
- html5lib=1.0.1=py36_0
- hypothesis=5.4.1=py_0
- icu=58.2=h9c2bf20_1
- idna=2.8=py36_0
- imageio=2.6.1=py36_0
- imagesize=1.2.0=py_0
- importlib_metadata=1.5.0=py36_0
- intel-openmp=2020.0=166
- ipykernel=5.1.4=py36h39e3cac_0
- ipython=7.12.0=py36h5ca1d4c_0
- ipython_genutils=0.2.0=py36_0
- ipywidgets=7.5.1=py_0
- isort=4.3.21=py36_0
- itsdangerous=1.1.0=py36_0
- jbig=2.1=hdba287a_0
- jdcal=1.4.1=py_0
- jedi=0.16.0=py36_0
- jeepney=0.4.2=py_0
- jinja2=2.11.1=py_0
- joblib=0.14.1=py_0
- jpeg=9b=h024ee3a_2
- json5=0.9.1=py_0
- jsonschema=3.2.0=py36_0
- jupyter=1.0.0=py36_7
- jupyter_client=5.3.4=py36_0
- jupyter_console=6.1.0=py_0
- jupyter_core=4.6.1=py36_0
- jupyterlab=1.2.6=pyhf63ae98_0
- jupyterlab_server=1.0.6=py_0
- keyring=21.1.0=py36_0
- kiwisolver=1.1.0=py36he6710b0_0
- krb5=1.17.1=h173b8e3_0
- lazy-object-proxy=1.4.3=py36h7b6447c_0
- ld_impl_linux-64=2.33.1=h53a641e_7
- libcurl=7.68.0=h20c2e04_0
- libedit=3.1.20181209=hc058e9b_0
- libffi=3.2.1=hd88cf55_4
- libgcc-ng=9.1.0=hdf63c60_0
- libgfortran-ng=7.3.0=hdf63c60_0
- libpng=1.6.37=hbc83047_0
- libsodium=1.0.16=h1bed415_0
- libssh2=1.8.2=h1ba5d50_0
- libstdcxx-ng=9.1.0=hdf63c60_0
- libtiff=4.1.0=h2733197_0
- libtool=2.4.6=h7b6447c_5
- libuuid=1.0.3=h1bed415_2
- libxcb=1.13=h1bed415_1
- libxml2=2.9.9=hea5a465_1
- libxslt=1.1.33=h7d1a2b0_0
- llvmlite=0.31.0=py36hd408876_0
- locket=0.2.0=py36_1
- lxml=4.5.0=py36hefd8a0e_0
- lz4-c=1.8.1.2=h14c3975_0
- lzo=2.10=h49e0be7_2
- markupsafe=1.1.1=py36h7b6447c_0
- matplotlib=3.1.3=py36_0
- matplotlib-base=3.1.3=py36hef1b27d_0
- mccabe=0.6.1=py36_1
- mistune=0.8.4=py36h7b6447c_0
- mkl=2020.0=166
- mkl-service=2.3.0=py36he904b0f_0
- mkl_fft=1.0.15=py36ha843d7b_0
- mkl_random=1.1.0=py36hd6b4f25_0
- mock=4.0.1=py_0
- more-itertools=8.2.0=py_0
- mpc=1.1.0=h10f8cd9_1
- mpfr=4.0.1=hdf1c602_3
- mpmath=1.1.0=py36_0
- msgpack-python=0.6.1=py36hfd86e86_1
- multipledispatch=0.6.0=py36_0
- nbconvert=5.6.1=py36_0
- nbformat=5.0.4=py_0
- ncurses=6.1=he6710b0_1
- networkx=2.4=py_0
- ninja=1.9.0=py36hfd86e86_0
- nltk=3.4.5=py36_0
- nose=1.3.7=py36_2
- notebook=6.0.3=py36_0
- numba=0.48.0=py36h0573a6f_0
- numexpr=2.7.1=py36h423224d_0
- numpy=1.18.1=py36h4f9e942_0
- numpy-base=1.18.1=py36hde5b4d6_1
- numpydoc=0.9.2=py_0
- olefile=0.46=py36_0
- openpyxl=3.0.3=py_0
- openssl=1.1.1d=h7b6447c_4
- packaging=20.1=py_0
- pandas=1.0.1=py36h0573a6f_0
- pandoc=2.2.3.2=0
- pandocfilters=1.4.2=py36_1
- pango=1.42.4=h049681c_0
- parso=0.6.1=py_0
- partd=1.1.0=py_0
- path=13.1.0=py36_0
- path.py=12.4.0=0
- pathlib2=2.3.5=py36_0
- patsy=0.5.1=py36_0
- pcre=8.43=he6710b0_0
- pep8=1.7.1=py36_0
- pexpect=4.8.0=py36_0
- pickleshare=0.7.5=py36_0
- pillow=7.0.0=py36hb39fc2d_0
- pip=20.0.2=py36_1
- pixman=0.38.0=h7b6447c_0
- pluggy=0.13.1=py36_0
- ply=3.11=py36_0
- prometheus_client=0.7.1=py_0
- prompt_toolkit=3.0.3=py_0
- psutil=5.6.7=py36h7b6447c_0
- ptyprocess=0.6.0=py36_0
- py=1.8.1=py_0
- pycodestyle=2.5.0=py36_0
- pycosat=0.6.3=py36h7b6447c_0
- pycparser=2.19=py36_0
- pycrypto=2.6.1=py36h14c3975_9
- pycurl=7.43.0.5=py36h1ba5d50_0
- pyflakes=2.1.1=py36_0
- pygments=2.5.2=py_0
- pylint=2.4.4=py36_0
- pyodbc=4.0.30=py36he6710b0_0
- pyopenssl=19.1.0=py36_0
- pyparsing=2.4.6=py_0
- pyqt=5.9.2=py36h05f1152_2
- pyrsistent=0.15.7=py36h7b6447c_0
- pysocks=1.7.1=py36_0
- pytables=3.6.1=py36h71ec239_0
- pytest=5.3.5=py36_0
- pytest-arraydiff=0.3=py36h39e3cac_0
- pytest-astropy=0.8.0=py_0
- pytest-astropy-header=0.1.2=py_0
- pytest-doctestplus=0.5.0=py_0
- pytest-openfiles=0.4.0=py_0
- pytest-remotedata=0.3.2=py36_0
- python=3.6.10=h0371630_0
- python-dateutil=2.8.1=py_0
- pytorch=1.4.0=py3.6_cpu_0
- pytz=2019.3=py_0
- pywavelets=1.1.1=py36h7b6447c_0
- pyyaml=5.3=py36h7b6447c_0
- pyzmq=18.1.1=py36he6710b0_0
- qt=5.9.7=h5867ecd_1
- qtawesome=0.6.1=py_0
- qtconsole=4.6.0=py_1
- qtpy=1.9.0=py_0
- readline=7.0=h7b6447c_5
- requests=2.22.0=py36_1
- rope=0.16.0=py_0
- ruamel_yaml=0.15.87=py36h7b6447c_0
- scikit-image=0.16.2=py36h0573a6f_0
- scikit-learn=0.22.1=py36hd81dba3_0
- scipy=1.4.1=py36h0b6359f_0
- seaborn=0.10.0=py_0
- secretstorage=3.1.2=py36_0
- send2trash=1.5.0=py36_0
- setuptools=45.2.0=py36_0
- simplegeneric=0.8.1=py36_2
- singledispatch=3.4.0.3=py36_0
- sip=4.19.8=py36hf484d3e_0
- six=1.14.0=py36_0
- snappy=1.1.7=hbae5bb6_3
- snowballstemmer=2.0.0=py_0
- sortedcollections=1.1.2=py36_0
- sortedcontainers=2.1.0=py36_0
- soupsieve=1.9.5=py36_0
- sphinx=2.4.0=py_0
- sphinxcontrib=1.0=py36_1
- sphinxcontrib-applehelp=1.0.1=py_0
- sphinxcontrib-devhelp=1.0.1=py_0
- sphinxcontrib-htmlhelp=1.0.2=py_0
- sphinxcontrib-jsmath=1.0.1=py_0
- sphinxcontrib-qthelp=1.0.2=py_0
- sphinxcontrib-serializinghtml=1.1.3=py_0
- sphinxcontrib-websupport=1.2.0=py_0
- spyder=3.3.6=py36_0
- spyder-kernels=0.5.2=py36_0
- sqlalchemy=1.3.13=py36h7b6447c_0
- sqlite=3.31.1=h7b6447c_0
- statsmodels=0.11.0=py36h7b6447c_0
- sympy=1.5.1=py36_0
- tblib=1.6.0=py_0
- terminado=0.8.3=py36_0
- testpath=0.4.4=py_0
- tk=8.6.8=hbc83047_0
- toolz=0.10.0=py_0
- torchvision=0.5.0=py36_cpu
- tornado=6.0.3=py36h7b6447c_3
- traitlets=4.3.3=py36_0
- typed-ast=1.4.1=py36h7b6447c_0
- unicodecsv=0.14.1=py36_0
- unixodbc=2.3.7=h14c3975_0
- urllib3=1.25.8=py36_0
- wcwidth=0.1.8=py_0
- webencodings=0.5.1=py36_1
- werkzeug=1.0.0=py_0
- wheel=0.34.2=py36_0
- widgetsnbextension=3.5.1=py36_0
- wrapt=1.11.2=py36h7b6447c_0
- wurlitzer=2.0.0=py36_0
- xlrd=1.2.0=py36_0
- xlsxwriter=1.2.7=py_0
- xlwt=1.3.0=py36_0
- xz=5.2.4=h14c3975_4
- yaml=0.1.7=had09818_2
- zeromq=4.3.1=he6710b0_3
- zict=1.0.0=py_0
- zipp=2.2.0=py_0
- zlib=1.2.11=h7b6447c_3
- zstd=1.3.7=h0b5b093_0
- _libgcc_mutex=0.1
- attrs=19.3.0
- backcall=0.1.0
- blas=1.0
- bleach=3.1.4
- ca-certificates=2020.4.5.1
- certifi=2020.4.5.1
- cpuonly=1.0
- decorator=4.4.2
- defusedxml=0.6.0
- entrypoints=0.3
- freetype=2.9.1
- importlib-metadata=1.6.0
- importlib_metadata=1.6.0
- intel-openmp=2020.0
- ipykernel=5.2.1
- ipython=7.13.0
- ipython_genutils=0.2.0
- ipywidgets=7.5.1
- jedi=0.17.0
- jinja2=2.11.2
- jpeg=9b
- jsonschema=3.2.0
- jupyter_client=6.1.3
- jupyter_core=4.6.3
- ld_impl_linux-64=2.33.1
- libedit=3.1.20181209
- libffi=3.2.1
- libgcc-ng=9.1.0
- libgfortran-ng=7.3.0
- libpng=1.6.37
- libsodium=1.0.17
- libstdcxx-ng=9.1.0
- libtiff=4.1.0
- markupsafe=1.1.1
- mistune=0.8.4
- mkl=2020.0
- mkl-service=2.3.0
- mkl_fft=1.0.15
- mkl_random=1.1.0
- nbconvert=5.6.1
- nbformat=5.0.6
- ncurses=6.2
- ninja=1.9.0
- notebook=6.0.3
- numpy=1.18.1
- numpy-base=1.18.1
- olefile=0.46
- openssl=1.1.1f
- pandoc=2.9.2.1
- parso=0.7.0
- pexpect=4.8.0
- pickleshare=0.7.5
- pillow=7.0.0
- pip=20.0.2
- prometheus_client=0.7.1
- prompt-toolkit=3.0.5
- ptyprocess=0.6.0
- pygments=2.6.1
- pyrsistent=0.16.0
- python=3.6.10
- python-dateutil=2.8.1
- python_abi=3.6
- pytorch=1.4.0
- readline=8.0
- send2trash=1.5.0
- setuptools=46.1.3
- six=1.14.0
- sqlite=3.31.1
- testpath=0.4.4
- tk=8.6.8
- torchvision=0.5.0
- tornado=6.0.4
- traitlets=4.3.3
- wcwidth=0.1.9
- wheel=0.34.2
- widgetsnbextension=3.5.1
- xz=5.2.5
- zeromq=4.3.2
- zipp=3.1.0
- zlib=1.2.11
- zstd=1.3.7
- pip:
- kornia==0.2.0
- opencv-contrib-python==4.2.0.32
prefix: /home/old-ufo/anaconda3/envs/mpv-assignments-cpu-only
- absl-py==0.9.0
- cachetools==4.1.0
- chardet==3.0.4
- cycler==0.10.0
- google-auth==1.14.0
- google-auth-oauthlib==0.4.1
- grpcio==1.28.1
- idna==2.9
- ipython-genutils==0.2.0
- kiwisolver==1.2.0
- kornia==0.2.1
- markdown==3.2.1
- matplotlib==3.2.1
- oauthlib==3.1.0
- opencv-contrib-python==4.2.0.34
- pandas==1.0.3
- pandocfilters==1.4.2
- protobuf==3.11.3
- pyasn1==0.4.8
- pyasn1-modules==0.2.8
- pyparsing==2.4.7
- pytz==2019.3
- pyzmq==19.0.0
- requests==2.23.0
- requests-oauthlib==1.3.0
- rsa==4.0
- scipy==1.4.1
- seaborn==0.10.0
- tensorboard==2.2.1
- tensorboard-plugin-wit==1.6.0.post3
- tensorboardx==2.0
- terminado==0.8.3
- tqdm==4.45.0
- urllib3==1.25.9
- webencodings==0.5.1
- werkzeug==1.0.1
name: mpv-assignments
name: mpv-assignments-gpu
channels:
- pytorch
- conda-forge
- defaults
dependencies:
- _anaconda_depends=2019.03=py36_0
- _libgcc_mutex=0.1=main
- alabaster=0.7.12=py36_0
- anaconda=custom=py36_1
- anaconda-client=1.7.2=py36_0
- anaconda-project=0.8.4=py_0
- asn1crypto=1.3.0=py36_0
- astroid=2.3.3=py36_0
- astropy=4.0=py36h7b6447c_0
- atomicwrites=1.3.0=py36_1
- attrs=19.3.0=py_0
- babel=2.8.0=py_0
- backcall=0.1.0=py36_0
- backports=1.0=py_2
- backports.os=0.1.1=py36_0
- backports.shutil_get_terminal_size=1.0.0=py36_2
- beautifulsoup4=4.8.2=py36_0
- bitarray=1.2.1=py36h7b6447c_0
- bkcharts=0.2=py36_0
- blas=1.0=mkl
- bleach=3.1.0=py36_0
- blosc=1.16.3=hd408876_0
- bokeh=1.4.0=py36_0
- boto=2.49.0=py36_0
- bottleneck=1.3.1=py36hdd07704_0
- bzip2=1.0.8=h7b6447c_0
- ca-certificates=2020.1.1=0
- cairo=1.14.12=h8948797_3
- certifi=2019.11.28=py36_0
- cffi=1.14.0=py36h2e261b9_0
- chardet=3.0.4=py36_1003
- click=7.0=py36_0
- cloudpickle=1.3.0=py_0
- clyent=1.2.2=py36_1
- colorama=0.4.3=py_0
- contextlib2=0.6.0.post1=py_0
- cryptography=2.8=py36h1ba5d50_0
- cudatoolkit=10.1.243=h6bb024c_0
- curl=7.68.0=hbc83047_0
- cycler=0.10.0=py36_0
- cython=0.29.15=py36he6710b0_0
- cytoolz=0.10.1=py36h7b6447c_0
- dask=2.10.1=py_0
- dask-core=2.10.1=py_0
- dbus=1.13.12=h746ee38_0
- decorator=4.4.1=py_0
- defusedxml=0.6.0=py_0
- distributed=2.10.0=py_0
- docutils=0.16=py36_0
- entrypoints=0.3=py36_0
- et_xmlfile=1.0.1=py36_0
- expat=2.2.6=he6710b0_0
- fastcache=1.1.0=py36h7b6447c_0
- flask=1.1.1=py_0
- fontconfig=2.13.0=h9420a91_0
- freetype=2.9.1=h8a8886c_1
- fribidi=1.0.5=h7b6447c_0
- fsspec=0.6.2=py_0
- get_terminal_size=1.0.0=haa9412d_0
- gevent=1.4.0=py36h7b6447c_0
- glib=2.63.1=h5a9c865_0
- gmp=6.1.2=h6c8ec71_1
- gmpy2=2.0.8=py36h10f8cd9_2
- graphite2=1.3.13=h23475e2_0
- greenlet=0.4.15=py36h7b6447c_0
- gst-plugins-base=1.14.0=hbbd80ab_1
- gstreamer=1.14.0=hb453b48_1
- h5py=2.10.0=py36h7918eee_0
- harfbuzz=1.8.8=hffaf4a1_0
- hdf5=1.10.4=hb1b8bf9_0
- heapdict=1.0.1=py_0
- html5lib=1.0.1=py36_0
- hypothesis=5.4.1=py_0
- icu=58.2=h9c2bf20_1
- idna=2.8=py36_0
- imageio=2.6.1=py36_0
- imagesize=1.2.0=py_0
- importlib_metadata=1.5.0=py36_0
- intel-openmp=2020.0=166
- ipykernel=5.1.4=py36h39e3cac_0
- ipython=7.12.0=py36h5ca1d4c_0
- ipython_genutils=0.2.0=py36_0
- ipywidgets=7.5.1=py_0
- isort=4.3.21=py36_0
- itsdangerous=1.1.0=py36_0
- jbig=2.1=hdba287a_0
- jdcal=1.4.1=py_0
- jedi=0.16.0=py36_0
- jeepney=0.4.2=py_0
- jinja2=2.11.1=py_0
- joblib=0.14.1=py_0
- jpeg=9b=h024ee3a_2
- json5=0.9.1=py_0
- jsonschema=3.2.0=py36_0
- jupyter=1.0.0=py36_7
- jupyter_client=5.3.4=py36_0
- jupyter_console=6.1.0=py_0
- jupyter_core=4.6.1=py36_0
- jupyterlab=1.2.6=pyhf63ae98_0
- jupyterlab_server=1.0.6=py_0
- keyring=21.1.0=py36_0
- kiwisolver=1.1.0=py36he6710b0_0
- krb5=1.17.1=h173b8e3_0
- lazy-object-proxy=1.4.3=py36h7b6447c_0
- ld_impl_linux-64=2.33.1=h53a641e_7
- libcurl=7.68.0=h20c2e04_0
- libedit=3.1.20181209=hc058e9b_0
- libffi=3.2.1=hd88cf55_4
- libgcc-ng=9.1.0=hdf63c60_0
- libgfortran-ng=7.3.0=hdf63c60_0
- libpng=1.6.37=hbc83047_0
- libsodium=1.0.16=h1bed415_0
- libssh2=1.8.2=h1ba5d50_0
- libstdcxx-ng=9.1.0=hdf63c60_0
- libtiff=4.1.0=h2733197_0
- libtool=2.4.6=h7b6447c_5
- libuuid=1.0.3=h1bed415_2
- libxcb=1.13=h1bed415_1
- libxml2=2.9.9=hea5a465_1
- libxslt=1.1.33=h7d1a2b0_0
- llvmlite=0.31.0=py36hd408876_0
- locket=0.2.0=py36_1
- lxml=4.5.0=py36hefd8a0e_0
- lz4-c=1.8.1.2=h14c3975_0
- lzo=2.10=h49e0be7_2
- markupsafe=1.1.1=py36h7b6447c_0
- matplotlib=3.1.3=py36_0
- matplotlib-base=3.1.3=py36hef1b27d_0
- mccabe=0.6.1=py36_1
- mistune=0.8.4=py36h7b6447c_0
- mkl=2020.0=166
- mkl-service=2.3.0=py36he904b0f_0
- mkl_fft=1.0.15=py36ha843d7b_0
- mkl_random=1.1.0=py36hd6b4f25_0
- mock=4.0.1=py_0
- more-itertools=8.2.0=py_0
- mpc=1.1.0=h10f8cd9_1
- mpfr=4.0.1=hdf1c602_3
- mpmath=1.1.0=py36_0
- msgpack-python=0.6.1=py36hfd86e86_1
- multipledispatch=0.6.0=py36_0
- nbconvert=5.6.1=py36_0
- nbformat=5.0.4=py_0
- ncurses=6.1=he6710b0_1
- networkx=2.4=py_0
- ninja=1.9.0=py36hfd86e86_0
- nltk=3.4.5=py36_0
- nose=1.3.7=py36_2
- notebook=6.0.3=py36_0
- numba=0.48.0=py36h0573a6f_0
- numexpr=2.7.1=py36h423224d_0
- numpy=1.18.1=py36h4f9e942_0
- numpy-base=1.18.1=py36hde5b4d6_1
- numpydoc=0.9.2=py_0
- olefile=0.46=py36_0
- openpyxl=3.0.3=py_0
- openssl=1.1.1d=h7b6447c_4
- packaging=20.1=py_0
- pandas=1.0.1=py36h0573a6f_0
- pandoc=2.2.3.2=0
- pandocfilters=1.4.2=py36_1
- pango=1.42.4=h049681c_0
- parso=0.6.1=py_0
- partd=1.1.0=py_0
- path=13.1.0=py36_0
- path.py=12.4.0=0
- pathlib2=2.3.5=py36_0
- patsy=0.5.1=py36_0
- pcre=8.43=he6710b0_0
- pep8=1.7.1=py36_0
- pexpect=4.8.0=py36_0
- pickleshare=0.7.5=py36_0
- pillow=7.0.0=py36hb39fc2d_0
- pip=20.0.2=py36_1
- pixman=0.38.0=h7b6447c_0
- pluggy=0.13.1=py36_0
- ply=3.11=py36_0
- prometheus_client=0.7.1=py_0
- prompt_toolkit=3.0.3=py_0
- psutil=5.6.7=py36h7b6447c_0
- ptyprocess=0.6.0=py36_0
- py=1.8.1=py_0
- pycodestyle=2.5.0=py36_0
- pycosat=0.6.3=py36h7b6447c_0
- pycparser=2.19=py36_0
- pycrypto=2.6.1=py36h14c3975_9
- pycurl=7.43.0.5=py36h1ba5d50_0
- pyflakes=2.1.1=py36_0
- pygments=2.5.2=py_0
- pylint=2.4.4=py36_0
- pyodbc=4.0.30=py36he6710b0_0
- pyopenssl=19.1.0=py36_0
- pyparsing=2.4.6=py_0
- pyqt=5.9.2=py36h05f1152_2
- pyrsistent=0.15.7=py36h7b6447c_0
- pysocks=1.7.1=py36_0
- pytables=3.6.1=py36h71ec239_0
- pytest=5.3.5=py36_0
- pytest-arraydiff=0.3=py36h39e3cac_0
- pytest-astropy=0.8.0=py_0
- pytest-astropy-header=0.1.2=py_0
- pytest-doctestplus=0.5.0=py_0
- pytest-openfiles=0.4.0=py_0
- pytest-remotedata=0.3.2=py36_0
- python=3.6.10=h0371630_0
- python-dateutil=2.8.1=py_0
- pytorch=1.4.0=py3.6_cuda10.1.243_cudnn7.6.3_0
- pytz=2019.3=py_0
- pywavelets=1.1.1=py36h7b6447c_0
- pyyaml=5.3=py36h7b6447c_0
- pyzmq=18.1.1=py36he6710b0_0
- qt=5.9.7=h5867ecd_1
- qtawesome=0.6.1=py_0
- qtconsole=4.6.0=py_1
- qtpy=1.9.0=py_0
- readline=7.0=h7b6447c_5
- requests=2.22.0=py36_1
- rope=0.16.0=py_0
- ruamel_yaml=0.15.87=py36h7b6447c_0
- scikit-image=0.16.2=py36h0573a6f_0
- scikit-learn=0.22.1=py36hd81dba3_0
- scipy=1.4.1=py36h0b6359f_0
- seaborn=0.10.0=py_0
- secretstorage=3.1.2=py36_0
- send2trash=1.5.0=py36_0
- setuptools=45.2.0=py36_0
- simplegeneric=0.8.1=py36_2
- singledispatch=3.4.0.3=py36_0
- sip=4.19.8=py36hf484d3e_0
- six=1.14.0=py36_0
- snappy=1.1.7=hbae5bb6_3
- snowballstemmer=2.0.0=py_0
- sortedcollections=1.1.2=py36_0
- sortedcontainers=2.1.0=py36_0
- soupsieve=1.9.5=py36_0
- sphinx=2.4.0=py_0
- sphinxcontrib=1.0=py36_1
- sphinxcontrib-applehelp=1.0.1=py_0
- sphinxcontrib-devhelp=1.0.1=py_0
- sphinxcontrib-htmlhelp=1.0.2=py_0
- sphinxcontrib-jsmath=1.0.1=py_0
- sphinxcontrib-qthelp=1.0.2=py_0
- sphinxcontrib-serializinghtml=1.1.3=py_0
- sphinxcontrib-websupport=1.2.0=py_0
- spyder=3.3.6=py36_0
- spyder-kernels=0.5.2=py36_0
- sqlalchemy=1.3.13=py36h7b6447c_0
- sqlite=3.31.1=h7b6447c_0
- statsmodels=0.11.0=py36h7b6447c_0
- sympy=1.5.1=py36_0
- tblib=1.6.0=py_0
- terminado=0.8.3=py36_0
- testpath=0.4.4=py_0
- tk=8.6.8=hbc83047_0
- toolz=0.10.0=py_0
- torchvision=0.5.0=py36_cu101
- tornado=6.0.3=py36h7b6447c_3
- traitlets=4.3.3=py36_0
- typed-ast=1.4.1=py36h7b6447c_0
- unicodecsv=0.14.1=py36_0
- unixodbc=2.3.7=h14c3975_0
- urllib3=1.25.8=py36_0
- wcwidth=0.1.8=py_0
- webencodings=0.5.1=py36_1
- werkzeug=1.0.0=py_0
- wheel=0.34.2=py36_0
- widgetsnbextension=3.5.1=py36_0
- wrapt=1.11.2=py36h7b6447c_0
- wurlitzer=2.0.0=py36_0
- xlrd=1.2.0=py36_0
- xlsxwriter=1.2.7=py_0
- xlwt=1.3.0=py36_0
- xz=5.2.4=h14c3975_4
- yaml=0.1.7=had09818_2
- zeromq=4.3.1=he6710b0_3
- zict=1.0.0=py_0
- zipp=2.2.0=py_0
- zlib=1.2.11=h7b6447c_3
- zstd=1.3.7=h0b5b093_0
- _libgcc_mutex=0.1
- attrs=19.3.0
- backcall=0.1.0
- blas=1.0
- bleach=3.1.4
- ca-certificates=2020.4.5.1
- certifi=2020.4.5.1
- cudatoolkit=10.1.243
- decorator=4.4.2
- defusedxml=0.6.0
- entrypoints=0.3
- freetype=2.9.1
- importlib-metadata=1.6.0
- importlib_metadata=1.6.0
- intel-openmp=2020.0
- ipykernel=5.2.1
- ipython=7.13.0
- ipython_genutils=0.2.0
- ipywidgets=7.5.1
- jedi=0.17.0
- jinja2=2.11.2
- jpeg=9b
- jsonschema=3.2.0
- jupyter_client=6.1.3
- jupyter_core=4.6.3
- ld_impl_linux-64=2.33.1
- libedit=3.1.20181209
- libffi=3.2.1
- libgcc-ng=9.1.0
- libgfortran-ng=7.3.0
- libpng=1.6.37
- libsodium=1.0.17
- libstdcxx-ng=9.1.0
- libtiff=4.1.0
- markupsafe=1.1.1
- mistune=0.8.4
- mkl=2020.0
- mkl-service=2.3.0
- mkl_fft=1.0.15
- mkl_random=1.1.0
- nbconvert=5.6.1
- nbformat=5.0.6
- ncurses=6.2
- ninja=1.9.0
- notebook=6.0.3
- numpy=1.18.1
- numpy-base=1.18.1
- olefile=0.46
- openssl=1.1.1g
- pandoc=2.9.2.1
- parso=0.7.0
- pexpect=4.8.0
- pickleshare=0.7.5
- pillow=7.0.0
- pip=20.0.2
- prometheus_client=0.7.1
- prompt-toolkit=3.0.5
- ptyprocess=0.6.0
- pygments=2.6.1
- pyrsistent=0.16.0
- python=3.6.10
- python-dateutil=2.8.1
- python_abi=3.6
- pytorch=1.4.0
- readline=8.0
- send2trash=1.5.0
- setuptools=46.1.3
- six=1.14.0
- sqlite=3.31.1
- testpath=0.4.4
- tk=8.6.8
- torchvision=0.5.0
- tornado=6.0.4
- traitlets=4.3.3
- wcwidth=0.1.9
- wheel=0.34.2
- widgetsnbextension=3.5.1
- xz=5.2.5
- zeromq=4.3.2
- zipp=3.1.0
- zlib=1.2.11
- zstd=1.3.7
- pip:
- kornia==0.2.0
- opencv-contrib-python==4.2.0.32
prefix: /home/old-ufo/anaconda3/envs/mpv-assignments
- absl-py==0.9.0
- cachetools==4.1.0
- chardet==3.0.4
- cycler==0.10.0
- google-auth==1.14.0
- google-auth-oauthlib==0.4.1
- grpcio==1.28.1
- idna==2.9
- ipython-genutils==0.2.0
- kiwisolver==1.2.0
- kornia==0.2.1
- markdown==3.2.1
- matplotlib==3.2.1
- oauthlib==3.1.0
- opencv-contrib-python==4.2.0.34
- pandas==1.0.3
- pandocfilters==1.4.2
- protobuf==3.11.3
- pyasn1==0.4.8
- pyasn1-modules==0.2.8
- pyparsing==2.4.7
- pytz==2019.3
- pyzmq==19.0.0
- requests==2.23.0
- requests-oauthlib==1.3.0
- rsa==4.0
- scipy==1.4.1
- seaborn==0.10.0
- tensorboard==2.2.1
- tensorboard-plugin-wit==1.6.0.post3
- tensorboardx==2.0
- terminado==0.8.3
- tqdm==4.45.0
- urllib3==1.25.9
- webencodings==0.5.1
- werkzeug==1.0.1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment