Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Anisimov/Link to dataset.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Link to data set:
https://drive.google.com/drive/folders/1RTo4pPWJDfGXwJnsV3DClgVEUGt5o5LB?usp=sharing
1,868 changes: 1,868 additions & 0 deletions Anisimov/Load_and_train_Part_2 (Anisimov).ipynb

Large diffs are not rendered by default.

4,358 changes: 4,358 additions & 0 deletions Anisimov/Picture download_Part_1(Anisimov).ipynb

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions Anisimov/README.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
In test folder data should be split on two folders:
Aphones-folder with none iphones pictures
Iphones-folder with iphones pictures
4 changes: 4 additions & 0 deletions Anisimov/RUN_Comand.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

python C:\Users\�����\Desktop\predict.py --model C:\Users\�����\Desktop\model_ip.pth --input C:\Users\�����\Desktop\Final_set\test --output C:\Users\�����\Desktop\result.csv


Binary file added Anisimov/model_ip.pth
Binary file not shown.
86 changes: 86 additions & 0 deletions Anisimov/predict.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
#!/usr/bin/env python
# coding: utf-8

# In[2]:


import torch
import numpy as np
import pandas as pd
import argparse
from torchvision.datasets import ImageFolder
from torchvision import transforms
import os


# In[29]:


def load_checkpoint(filepath):
checkpoint = torch.load(filepath)
model = checkpoint['model']
model.load_state_dict(checkpoint['state_dict'])
model.eval()
return model


# In[1]:


#create csv
def results(names,preds,out_file):
print('Saving result-Start')
final_out = pd.DataFrame()
final_out['image_name'] = names
final_out['iphone_probability'] = preds
final_out.to_csv(out_file, index=False)
print('Saving result-Done')


# In[31]:


def predict_proba(model,test):
print('Model load-Start')
#load the model
model=load_checkpoint(model)
print('Model load-Done')
print('-------')
print('Prediction process-Start')
#Image convert
data_transforms = transforms.Compose([
transforms.Resize((224,224)),
transforms.ToTensor(),
transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])
#Define images loader
image_datasets = ImageFolder(test,data_transforms)
test_data_gen=torch.utils.data.DataLoader(image_datasets, batch_size=256,shuffle=False, num_workers=6)
#Load images names
names=[image_datasets.imgs[i][0].split('\\')[-1] for i in range(0,len(image_datasets.imgs))]
#Predict probas
preds=np.array([])
for inputs, labels in test_data_gen:
preds=np.append(preds,model(inputs).data.numpy()[:,1])
print('Prediction process-Done')
# save table
results(names,preds,args.output)



# In[46]:


if __name__ == '__main__':
# disable warnings
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
# parse arguments
parser = argparse.ArgumentParser(description='Iphone detector')
parser.add_argument('--model', type=str, default='model.hdf5', help='path to model')
parser.add_argument('--input', type=str, default='test', help='Path to class folder directory')
parser.add_argument('--output', type=str, default='predictions.csv', help='path to file with model output')
args = parser.parse_args()
# get predictions
predict_proba(args.model,args.input)
print()
print('Done')

289 changes: 289 additions & 0 deletions Anisimov/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,289 @@
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: win-64
_ipyw_jlab_nb_ext_conf=0.1.0=py37_0
absl-py=0.7.1=pypi_0
alabaster=0.7.12=py37_0
anaconda=2019.03=py37_0
anaconda-client=1.7.2=py37_0
anaconda-navigator=1.9.7=py37_0
anaconda-project=0.8.2=py37_0
asn1crypto=0.24.0=py37_0
astor=0.7.1=pypi_0
astroid=2.2.5=py37_0
astropy=3.1.2=py37he774522_0
atomicwrites=1.3.0=py37_1
attrs=19.1.0=py37_1
babel=2.6.0=py37_0
backcall=0.1.0=py37_0
backports=1.0=py37_1
backports.os=0.1.1=py37_0
backports.shutil_get_terminal_size=1.0.0=py37_2
beautifulsoup4=4.7.1=py37_1
bitarray=0.8.3=py37hfa6e2cd_0
bkcharts=0.2=py37_0
blas=1.0=mkl
bleach=3.1.0=py37_0
blosc=1.15.0=h7bd577a_0
bokeh=1.0.4=py37_0
boto=2.49.0=py37_0
bottleneck=1.2.1=py37h452e1ab_1
bzip2=1.0.6=hfa6e2cd_5
ca-certificates=2019.1.23=0
certifi=2019.3.9=py37_0
cffi=1.12.2=py37h7a1dbc1_1
chardet=3.0.4=py37_1
classification-models=0.1=pypi_0
click=7.0=py37_0
cloudpickle=0.8.0=py37_0
clyent=1.2.2=py37_1
colorama=0.4.1=py37_0
comtypes=1.1.7=py37_0
conda=4.6.14=py37_0
conda-build=3.17.8=py37_0
conda-env=2.6.0=1
conda-verify=3.1.1=py37_0
console_shortcut=0.1.1=3
contextlib2=0.5.5=py37_0
cryptography=2.6.1=py37h7a1dbc1_0
cudatoolkit=9.0=1
curl=7.64.0=h2a8f88b_2
cycler=0.10.0=py37_0
cython=0.29.6=py37ha925a31_0
cytoolz=0.9.0.1=py37hfa6e2cd_1
dask=1.1.4=py37_1
dask-core=1.1.4=py37_1
decorator=4.4.0=py37_1
defusedxml=0.5.0=py37_1
distributed=1.26.0=py37_1
docutils=0.14=py37_0
entrypoints=0.3=py37_0
et_xmlfile=1.0.1=py37_0
fastcache=1.0.2=py37hfa6e2cd_2
filelock=3.0.10=py37_0
flask=1.0.2=py37_1
freetype=2.9.1=ha9979f8_1
future=0.17.1=py37_0
gast=0.2.2=pypi_0
get_terminal_size=1.0.0=h38e98db_0
gevent=1.4.0=py37he774522_0
git=2.20.1=h6bb4b03_0
glob2=0.6=py37_1
google-images-download=2.6.1=pypi_0
greenlet=0.4.15=py37hfa6e2cd_0
grpcio=1.19.0=pypi_0
h5py=2.9.0=py37h5e291fa_0
hdf5=1.10.4=h7ebc959_0
heapdict=1.0.0=py37_2
html5lib=1.0.1=py37_0
icc_rt=2019.0.0=h0cc432a_1
icu=58.2=ha66f8fd_1
idna=2.8=py37_0
imageio=2.5.0=py37_0
imagesize=1.1.0=py37_0
importlib_metadata=0.8=py37_0
intel-openmp=2019.3=203
ipykernel=5.1.0=py37h39e3cac_0
ipython=7.4.0=py37h39e3cac_0
ipython_genutils=0.2.0=py37_0
ipywidgets=7.4.2=py37_0
isort=4.3.16=py37_0
itsdangerous=1.1.0=py37_0
jdcal=1.4=py37_0
jedi=0.13.3=py37_0
jinja2=2.10=py37_0
jpeg=9b=hb83a4c4_2
jsonschema=3.0.1=py37_0
jupyter=1.0.0=py37_7
jupyter_client=5.2.4=py37_0
jupyter_console=6.0.0=py37_0
jupyter_core=4.4.0=py37_0
jupyterlab=0.35.4=py37hf63ae98_0
jupyterlab_server=0.2.0=py37_0
keras=2.2.4=pypi_0
keras-applications=1.0.7=pypi_0
keras-preprocessing=1.0.9=pypi_0
keyring=18.0.0=py37_0
kiwisolver=1.0.1=py37h6538335_0
krb5=1.16.1=hc04afaa_7
lazy-object-proxy=1.3.1=py37hfa6e2cd_2
libarchive=3.3.3=h0643e63_5
libcurl=7.64.0=h2a8f88b_2
libiconv=1.15=h1df5818_7
liblief=0.9.0=ha925a31_2
libpng=1.6.36=h2a8f88b_0
libsodium=1.0.16=h9d3ae62_0
libssh2=1.8.0=h7a1dbc1_4
libtiff=4.0.10=hb898794_2
libxml2=2.9.9=h464c3ec_0
libxslt=1.1.33=h579f668_0
llvmlite=0.28.0=py37ha925a31_0
locket=0.2.0=py37_1
lxml=4.3.2=py37h1350720_0
lz4-c=1.8.1.2=h2fa13f4_0
lzo=2.10=h6df0209_2
m2w64-gcc-libgfortran=5.3.0=6
m2w64-gcc-libs=5.3.0=7
m2w64-gcc-libs-core=5.3.0=7
m2w64-gmp=6.1.0=2
m2w64-libwinpthread-git=5.0.0.4634.697f757=2
markdown=3.1=pypi_0
markupsafe=1.1.1=py37he774522_0
matplotlib=3.0.3=py37hc8f65d3_0
mccabe=0.6.1=py37_1
menuinst=1.4.16=py37he774522_0
mistune=0.8.4=py37he774522_0
mkl=2019.3=203
mkl-service=1.1.2=py37hb782905_5
mkl_fft=1.0.10=py37h14836fe_0
mkl_random=1.0.2=py37h343c172_0
mmdnn=0.2.5=pypi_0
mock=2.0.0=pypi_0
more-itertools=6.0.0=py37_0
mpmath=1.1.0=py37_0
msgpack-python=0.6.1=py37h74a9793_1
msys2-conda-epoch=20160418=1
multipledispatch=0.6.0=py37_0
navigator-updater=0.2.1=py37_0
nbconvert=5.4.1=py37_3
nbformat=4.4.0=py37_0
networkx=2.2=py37_1
ninja=1.9.0=py37h74a9793_0
nltk=3.4=py37_1
nose=1.3.7=py37_2
notebook=5.7.8=py37_0
numba=0.43.1=py37hf9181ef_0
numexpr=2.6.9=py37hdce8814_0
numpy=1.16.2=py37h19fb1c0_0
numpy-base=1.16.2=py37hc3f5095_0
numpydoc=0.8.0=py37_0
olefile=0.46=py37_0
openpyxl=2.6.1=py37_1
openssl=1.1.1b=he774522_1
packaging=19.0=py37_0
pandas=0.24.2=py37ha925a31_0
pandoc=2.2.3.2=0
pandocfilters=1.4.2=py37_1
parso=0.3.4=py37_0
partd=0.3.10=py37_1
path.py=11.5.0=py37_0
pathlib2=2.3.3=py37_0
patsy=0.5.1=py37_0
pbr=5.1.3=pypi_0
pep8=1.7.1=py37_0
pickleshare=0.7.5=py37_0
pillow=5.4.1=py37hdc69c19_0
pip=19.0.3=py37_0
pkginfo=1.5.0.1=py37_0
pluggy=0.9.0=py37_0
ply=3.11=py37_0
powershell_shortcut=0.0.1=2
progressbar=2.5=pypi_0
prometheus_client=0.6.0=py37_0
prompt_toolkit=2.0.9=py37_0
protobuf=3.7.1=pypi_0
psutil=5.6.1=py37he774522_0
py=1.8.0=py37_0
py-lief=0.9.0=py37ha925a31_2
pycodestyle=2.5.0=py37_0
pycosat=0.6.3=py37hfa6e2cd_0
pycparser=2.19=py37_0
pycrypto=2.6.1=py37hfa6e2cd_9
pycurl=7.43.0.2=py37h7a1dbc1_0
pyflakes=2.1.1=py37_0
pygments=2.3.1=py37_0
pylint=2.3.1=py37_0
pyodbc=4.0.26=py37ha925a31_0
pyopenssl=19.0.0=py37_0
pyparsing=2.3.1=py37_0
pyqt=5.9.2=py37h6538335_2
pyreadline=2.1=py37_1
pyrsistent=0.14.11=py37he774522_0
pysocks=1.6.8=py37_0
pytables=3.5.1=py37h1da0976_0
pytest=4.3.1=py37_0
pytest-arraydiff=0.3=py37h39e3cac_0
pytest-astropy=0.5.0=py37_0
pytest-doctestplus=0.3.0=py37_0
pytest-openfiles=0.3.2=py37_0
pytest-remotedata=0.3.1=py37_0
python=3.7.3=h8c8aaf0_0
python-dateutil=2.8.0=py37_0
python-libarchive-c=2.8=py37_6
pytorch=1.1.0=py3.7_cuda90_cudnn7_1
pytz=2018.9=py37_0
pywavelets=1.0.2=py37h8c2d366_0
pywin32=223=py37hfa6e2cd_1
pywinpty=0.5.5=py37_1000
pyyaml=5.1=py37he774522_0
pyzmq=18.0.0=py37ha925a31_0
qt=5.9.7=vc14h73c81de_0
qtawesome=0.5.7=py37_1
qtconsole=4.4.3=py37_0
qtpy=1.7.0=py37_1
requests=2.21.0=py37_0
rope=0.12.0=py37_0
ruamel_yaml=0.15.46=py37hfa6e2cd_0
scikit-image=0.14.2=py37ha925a31_0
scikit-learn=0.20.3=py37h343c172_0
scipy=1.2.1=py37h29ff71c_0
seaborn=0.9.0=py37_0
selenium=3.141.0=pypi_0
send2trash=1.5.0=py37_0
setuptools=40.8.0=py37_0
simplegeneric=0.8.1=py37_2
singledispatch=3.4.0.3=py37_0
sip=4.19.8=py37h6538335_0
six=1.12.0=py37_0
snappy=1.1.7=h777316e_3
snowballstemmer=1.2.1=py37_0
sortedcollections=1.1.2=py37_0
sortedcontainers=2.1.0=py37_0
soupsieve=1.8=py37_0
sphinx=1.8.5=py37_0
sphinxcontrib=1.0=py37_1
sphinxcontrib-websupport=1.1.0=py37_1
spyder=3.3.3=py37_0
spyder-kernels=0.4.2=py37_0
sqlalchemy=1.3.1=py37he774522_0
sqlite=3.27.2=he774522_0
statsmodels=0.9.0=py37h452e1ab_0
sympy=1.3=py37_0
tblib=1.3.2=py37_0
tensorboard=1.13.1=pypi_0
tensorflow=1.13.1=pypi_0
tensorflow-estimator=1.13.0=pypi_0
termcolor=1.1.0=pypi_0
terminado=0.8.1=py37_1
testpath=0.4.2=py37_0
tk=8.6.8=hfa6e2cd_0
toolz=0.9.0=py37_0
torchvision=0.2.2=py_3
tornado=6.0.2=py37he774522_0
tqdm=4.31.1=py37_1
traitlets=4.3.2=py37_0
unicodecsv=0.14.1=py37_0
urllib3=1.24.1=py37_0
vc=14.1=h0510ff6_4
vs2015_runtime=14.15.26706=h3a45250_0
wcwidth=0.1.7=py37_0
webencodings=0.5.1=py37_1
werkzeug=0.14.1=py37_0
wheel=0.33.1=py37_0
widgetsnbextension=3.4.2=py37_0
win_inet_pton=1.1.0=py37_0
win_unicode_console=0.5=py37_0
wincertstore=0.2=py37_0
winpty=0.4.3=4
wrapt=1.11.1=py37he774522_0
xlrd=1.2.0=py37_0
xlsxwriter=1.1.5=py37_0
xlwings=0.15.4=py37_0
xlwt=1.3.0=py37_0
xz=5.2.4=h2fa13f4_4
yaml=0.1.7=hc54c509_2
zeromq=4.3.1=h33f27b4_3
zict=0.1.4=py37_0
zipp=0.3.3=py37_1
zlib=1.2.11=h62dcd97_3
zstd=1.3.7=h508b16e_0
Loading