Skip to content

Commit 693300f

Browse files
committed
First commit
0 parents  commit 693300f

29 files changed

+2783
-0
lines changed

.gitignore

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,240 @@
1+
*~
2+
3+
# temporary files which can be created if a process still has a handle open of a deleted file
4+
.fuse_hidden*
5+
6+
# KDE directory preferences
7+
.directory
8+
9+
# Linux trash folder which might appear on any partition or disk
10+
.Trash-*
11+
12+
# .nfs files are created when an open file is removed but is still being accessed
13+
.nfs*
14+
15+
16+
*.DS_Store
17+
.AppleDouble
18+
.LSOverride
19+
20+
# Icon must end with two \r
21+
Icon
22+
23+
24+
# Thumbnails
25+
._*
26+
27+
# Files that might appear in the root of a volume
28+
.DocumentRevisions-V100
29+
.fseventsd
30+
.Spotlight-V100
31+
.TemporaryItems
32+
.Trashes
33+
.VolumeIcon.icns
34+
.com.apple.timemachine.donotpresent
35+
36+
# Directories potentially created on remote AFP share
37+
.AppleDB
38+
.AppleDesktop
39+
Network Trash Folder
40+
Temporary Items
41+
.apdisk
42+
43+
44+
# swap
45+
[._]*.s[a-v][a-z]
46+
[._]*.sw[a-p]
47+
[._]s[a-v][a-z]
48+
[._]sw[a-p]
49+
# session
50+
Session.vim
51+
# temporary
52+
.netrwhist
53+
*~
54+
# auto-generated tag files
55+
tags
56+
57+
58+
# cache files for sublime text
59+
*.tmlanguage.cache
60+
*.tmPreferences.cache
61+
*.stTheme.cache
62+
63+
# workspace files are user-specific
64+
*.sublime-workspace
65+
66+
# project files should be checked into the repository, unless a significant
67+
# proportion of contributors will probably not be using SublimeText
68+
# *.sublime-project
69+
70+
# sftp configuration file
71+
sftp-config.json
72+
73+
# Package control specific files
74+
Package Control.last-run
75+
Package Control.ca-list
76+
Package Control.ca-bundle
77+
Package Control.system-ca-bundle
78+
Package Control.cache/
79+
Package Control.ca-certs/
80+
Package Control.merged-ca-bundle
81+
Package Control.user-ca-bundle
82+
oscrypto-ca-bundle.crt
83+
bh_unicode_properties.cache
84+
85+
# Sublime-github package stores a github token in this file
86+
# https://packagecontrol.io/packages/sublime-github
87+
GitHub.sublime-settings
88+
89+
90+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
91+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
92+
93+
# User-specific stuff:
94+
.idea
95+
.idea/**/workspace.xml
96+
.idea/**/tasks.xml
97+
98+
# Sensitive or high-churn files:
99+
.idea/**/dataSources/
100+
.idea/**/dataSources.ids
101+
.idea/**/dataSources.xml
102+
.idea/**/dataSources.local.xml
103+
.idea/**/sqlDataSources.xml
104+
.idea/**/dynamic.xml
105+
.idea/**/uiDesigner.xml
106+
107+
# Gradle:
108+
.idea/**/gradle.xml
109+
.idea/**/libraries
110+
111+
# Mongo Explorer plugin:
112+
.idea/**/mongoSettings.xml
113+
114+
## File-based project format:
115+
*.iws
116+
117+
## Plugin-specific files:
118+
119+
# IntelliJ
120+
/out/
121+
122+
# mpeltonen/sbt-idea plugin
123+
.idea_modules/
124+
125+
# JIRA plugin
126+
atlassian-ide-plugin.xml
127+
128+
# Crashlytics plugin (for Android Studio and IntelliJ)
129+
com_crashlytics_export_strings.xml
130+
crashlytics.properties
131+
crashlytics-build.properties
132+
fabric.properties
133+
134+
135+
# Byte-compiled / optimized / DLL files
136+
__pycache__/
137+
*.py[cod]
138+
*$py.class
139+
140+
# C extensions
141+
*.so
142+
143+
# Distribution / packaging
144+
.Python
145+
env/
146+
build/
147+
develop-eggs/
148+
dist/
149+
downloads/
150+
eggs/
151+
.eggs/
152+
lib64/
153+
parts/
154+
sdist/
155+
var/
156+
wheels/
157+
*.egg-info/
158+
.installed.cfg
159+
*.egg
160+
MANIFEST
161+
162+
# PyInstaller
163+
# Usually these files are written by a python script from a template
164+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
165+
*.manifest
166+
*.spec
167+
168+
# Installer logs
169+
pip-log.txt
170+
pip-delete-this-directory.txt
171+
172+
# Unit test / coverage reports
173+
htmlcov/
174+
.tox/
175+
.coverage
176+
.coverage.*
177+
.cache
178+
nosetests.xml
179+
coverage.xml
180+
*.cover
181+
.hypothesis/
182+
.pytest_cache/
183+
184+
# Translations
185+
*.mo
186+
*.pot
187+
188+
# Django stuff:
189+
*.log
190+
local_settings.py
191+
192+
# Flask stuff:
193+
instance/
194+
.webassets-cache
195+
196+
# Scrapy stuff:
197+
.scrapy
198+
199+
# Sphinx documentation
200+
docs/_build/
201+
202+
# PyBuilder
203+
target/
204+
205+
# IPython Notebook
206+
.ipynb_checkpoints
207+
208+
# pyenv
209+
.python-version
210+
211+
# celery beat schedule file
212+
celerybeat-schedule
213+
214+
# SageMath parsed files
215+
*.sage.py
216+
217+
# Environments
218+
.env
219+
.venv
220+
env/
221+
venv/
222+
ENV/
223+
env.bak/
224+
venv.bak/
225+
226+
# Spyder project settings
227+
.spyderproject
228+
.spyproject
229+
230+
# Rope project settings
231+
.ropeproject
232+
233+
234+
# Project specific
235+
logs
236+
*.png
237+
*.jpg
238+
*.jpeg
239+
viz
240+
vis

config.py

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
from __future__ import absolute_import
2+
from __future__ import division
3+
from __future__ import print_function
4+
import sys
5+
sys.path.append('./')
6+
7+
import six
8+
import os
9+
import os.path as osp
10+
import math
11+
import argparse
12+
13+
14+
parser = argparse.ArgumentParser(description="Softmax loss classification")
15+
# data
16+
parser.add_argument('--synthetic_train_data_dir', nargs='+', type=str, metavar='PATH',
17+
default=['/share/zhui/reg_dataset/NIPS2014'])
18+
parser.add_argument('--real_train_data_dir', type=str, metavar='PATH',
19+
default='/data/zhui/benchmark/cocotext_trainval')
20+
parser.add_argument('--extra_train_data_dir', nargs='+', type=str, metavar='PATH',
21+
default=['/share/zhui/reg_dataset/CVPR2016'])
22+
parser.add_argument('--test_data_dir', type=str, metavar='PATH',
23+
default='/share/zhui/reg_dataset/IIIT5K_3000')
24+
parser.add_argument('--MULTI_TRAINDATA', action='store_true', default=False,
25+
help='whether use the extra_train_data for training.')
26+
parser.add_argument('-b', '--batch_size', type=int, default=128)
27+
parser.add_argument('-j', '--workers', type=int, default=8)
28+
parser.add_argument('--height', type=int, default=64,
29+
help="input height, default: 256 for resnet*, ""64 for inception")
30+
parser.add_argument('--width', type=int, default=256,
31+
help="input width, default: 128 for resnet*, ""256 for inception")
32+
parser.add_argument('--keep_ratio', action='store_true', default=False,
33+
help='length fixed or lenghth variable.')
34+
parser.add_argument('--voc_type', type=str, default='ALLCASES_SYMBOLS',
35+
choices=['LOWERCASE', 'ALLCASES', 'ALLCASES_SYMBOLS'])
36+
parser.add_argument('--mix_data', action='store_true',
37+
help="whether combine multi datasets in the training stage.")
38+
parser.add_argument('--num_train', type=int, default=math.inf)
39+
parser.add_argument('--num_test', type=int, default=math.inf)
40+
parser.add_argument('--aug', action='store_true', default=False,
41+
help='whether use data augmentation.')
42+
parser.add_argument('--lexicon_type', type=str, default='0', choices=['0', '50', '1k', 'full'],
43+
help='which lexicon associated to image is used.')
44+
parser.add_argument('--image_path', type=str, default='',
45+
help='the path of single image, used in demo.py.')
46+
parser.add_argument('--tps_inputsize', nargs='+', type=int, default=[32, 64])
47+
parser.add_argument('--tps_outputsize', nargs='+', type=int, default=[32, 100])
48+
# model
49+
parser.add_argument('-a', '--arch', type=str, default='ResNet_ASTER')
50+
parser.add_argument('--dropout', type=float, default=0.5)
51+
parser.add_argument('--max_len', type=int, default=100)
52+
parser.add_argument('--n_group', type=int, default=1)
53+
parser.add_argument('--STN_ON', action='store_true',
54+
help='add the stn head.')
55+
parser.add_argument('--tps_margins', nargs='+', type=float, default=[0.05,0.05])
56+
parser.add_argument('--stn_activation', type=str, default='none')
57+
parser.add_argument('--num_control_points', type=int, default=20)
58+
parser.add_argument('--stn_with_dropout', action='store_true', default=False)
59+
## lstm
60+
parser.add_argument('--with_lstm', action='store_true', default=False,
61+
help='whether append lstm after cnn in the encoder part.')
62+
parser.add_argument('--decoder_sdim', type=int, default=512,
63+
help="the dim of hidden layer in decoder.")
64+
parser.add_argument('--attDim', type=int, default=512,
65+
help="the dim for attention.")
66+
# optimizer
67+
parser.add_argument('--lr', type=float, default=1,
68+
help="learning rate of new parameters, for pretrained "
69+
"parameters it is 10 times smaller than this")
70+
parser.add_argument('--momentum', type=float, default=0.9)
71+
parser.add_argument('--weight_decay', type=float, default=0.0) # the model maybe under-fitting, 0.0 gives much better results.
72+
parser.add_argument('--grad_clip', type=float, default=1.0)
73+
parser.add_argument('--loss_weights', nargs='+', type=float, default=[1,1,1])
74+
# training configs
75+
parser.add_argument('--resume', type=str, default='', metavar='PATH')
76+
parser.add_argument('--evaluate', action='store_true',
77+
help="evaluation only")
78+
parser.add_argument('--epochs', type=int, default=6)
79+
parser.add_argument('--start_save', type=int, default=0,
80+
help="start saving checkpoints after specific epoch")
81+
parser.add_argument('--seed', type=int, default=1)
82+
parser.add_argument('--print_freq', type=int, default=100)
83+
parser.add_argument('--cuda', default=True, type=bool,
84+
help='whether use cuda support.')
85+
# testing configs
86+
parser.add_argument('--evaluation_metric', type=str, default='accuracy')
87+
parser.add_argument('--evaluate_with_lexicon', action='store_true', default=False)
88+
parser.add_argument('--beam_width', type=int, default=5)
89+
# misc
90+
working_dir = osp.dirname(osp.dirname(osp.abspath(__file__)))
91+
parser.add_argument('--logs_dir', type=str, metavar='PATH',
92+
default=osp.join(working_dir, 'logs'))
93+
parser.add_argument('--real_logs_dir', type=str, metavar='PATH',
94+
default='/media/mkyang/research/recognition/selfattention_rec')
95+
parser.add_argument('--debug', action='store_true',
96+
help="if debugging, some steps will be passed.")
97+
parser.add_argument('--vis_dir', type=str, metavar='PATH', default='',
98+
help="whether visualize the results while evaluation.")
99+
parser.add_argument('--run_on_remote', action='store_true', default=False,
100+
help="run the code on remote or local.")
101+
102+
def get_args(sys_args):
103+
global_args = parser.parse_args(sys_args)
104+
return global_args

lib/__init__.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from __future__ import absolute_import
2+
3+
from . import datasets
4+
from . import evaluation_metrics
5+
from . import loss
6+
from . import models
7+
from . import utils
8+
from . import evaluators
9+
from . import trainers
10+
11+
__version__ = '1.0.1.post2'

lib/datasets/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)