Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
caries_classifier
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sjjsmuel
caries_classifier
Commits
e3c955f5
Commit
e3c955f5
authored
Jul 06, 2020
by
sjjsmuel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DS Shuffle optional
parent
bf9c5ff3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
8 deletions
+16
-8
helpers/DataLoader.py
helpers/DataLoader.py
+16
-8
No files found.
helpers/DataLoader.py
View file @
e3c955f5
...
@@ -90,7 +90,7 @@ def clip(x, y):
...
@@ -90,7 +90,7 @@ def clip(x, y):
'''
'''
class
DataLoader
(
object
):
class
DataLoader
(
object
):
def
__init__
(
self
,
data_path
,
batch_size
,
img_width
,
img_height
,
channels
,
should_size_dataset1
=
0
,
should_size_dataset2
=
0
,
split_size
=
0.0
,
augment
=
False
,
annotation
=
None
):
def
__init__
(
self
,
data_path
,
batch_size
,
img_width
,
img_height
,
channels
,
should_size_dataset1
=
0
,
should_size_dataset2
=
0
,
split_size
=
0.0
,
augment
=
False
,
annotation
=
None
,
shuffle
=
True
):
self
.
data_path
=
data_path
self
.
data_path
=
data_path
self
.
batch_size
=
batch_size
self
.
batch_size
=
batch_size
self
.
split_size
=
split_size
self
.
split_size
=
split_size
...
@@ -102,6 +102,7 @@ class DataLoader(object):
...
@@ -102,6 +102,7 @@ class DataLoader(object):
self
.
AUGMENT
=
augment
self
.
AUGMENT
=
augment
self
.
AUGMENTATIONS
=
[
flip
,
color
,
zoom
,
rotate
]
self
.
AUGMENTATIONS
=
[
flip
,
color
,
zoom
,
rotate
]
self
.
annotation
=
annotation
self
.
annotation
=
annotation
self
.
shuffle
=
shuffle
self
.
classes
=
[
item
.
name
for
item
in
data_path
.
glob
(
'*'
)
if
item
.
name
!=
'.DS_Store'
]
self
.
classes
=
[
item
.
name
for
item
in
data_path
.
glob
(
'*'
)
if
item
.
name
!=
'.DS_Store'
]
self
.
n_classes
=
len
(
self
.
classes
)
self
.
n_classes
=
len
(
self
.
classes
)
...
@@ -219,16 +220,18 @@ class DataLoader(object):
...
@@ -219,16 +220,18 @@ class DataLoader(object):
filenames_list
,
mouths_list
,
labels_list
=
self
.
_load_data_as_filename_lists
(
self
.
data_path
)
filenames_list
,
mouths_list
,
labels_list
=
self
.
_load_data_as_filename_lists
(
self
.
data_path
)
# Shuffle the lists
# Shuffle the lists
dataset_list
=
list
(
zip
(
filenames_list
,
mouths_list
,
labels_list
))
if
self
.
shuffle
:
random
.
shuffle
(
dataset_list
)
dataset_list
=
list
(
zip
(
filenames_list
,
mouths_list
,
labels_list
))
filenames_list
,
mouths_list
,
labels_list
=
zip
(
*
dataset_list
)
random
.
shuffle
(
dataset_list
)
filenames_list
,
mouths_list
,
labels_list
=
zip
(
*
dataset_list
)
# Will skipp the splitting if it would result in a full copy of dataset in dataset_1 or dataset_2
# Will skipp the splitting if it would result in a full copy of dataset in dataset_1 or dataset_2
if
self
.
split_size
not
in
[
0
,
1
]:
if
self
.
split_size
not
in
[
0
,
1
]:
filenames_list
,
mouths_list
,
labels_list
,
filenames2_list
,
mouths2_list
,
labels2_list
=
self
.
_filename_and_labels_split
(
filenames_list
,
labels_list
)
filenames_list
,
mouths_list
,
labels_list
,
filenames2_list
,
mouths2_list
,
labels2_list
=
self
.
_filename_and_labels_split
(
filenames_list
,
labels_list
)
self
.
dataset_2
=
self
.
_create_dataset
(
filenames2_list
,
mouths2_list
,
labels2_list
)
self
.
dataset_2
=
self
.
_create_dataset
(
filenames2_list
,
mouths2_list
,
labels2_list
)
self
.
dataset_2
=
self
.
dataset_2
.
shuffle
(
buffer_size
=
(
len
(
filenames2_list
)))
if
self
.
shuffle
:
self
.
dataset_2
=
self
.
dataset_2
.
shuffle
(
buffer_size
=
(
len
(
filenames2_list
)))
self
.
dataset_2_size
=
len
(
filenames2_list
)
self
.
dataset_2_size
=
len
(
filenames2_list
)
if
self
.
dataset_2_size_min_count
!=
0
:
if
self
.
dataset_2_size_min_count
!=
0
:
self
.
dataset_2_repeat_factor
=
math
.
ceil
(
self
.
dataset_2_size_min_count
/
self
.
dataset_2_size
)
self
.
dataset_2_repeat_factor
=
math
.
ceil
(
self
.
dataset_2_size_min_count
/
self
.
dataset_2_size
)
...
@@ -236,7 +239,8 @@ class DataLoader(object):
...
@@ -236,7 +239,8 @@ class DataLoader(object):
# Creating actual TF Dataset 1
# Creating actual TF Dataset 1
self
.
dataset_1
=
self
.
_create_dataset
(
filenames_list
,
mouths_list
,
labels_list
)
self
.
dataset_1
=
self
.
_create_dataset
(
filenames_list
,
mouths_list
,
labels_list
)
self
.
dataset_1
=
self
.
dataset_1
.
shuffle
(
buffer_size
=
(
len
(
filenames_list
)))
if
self
.
shuffle
:
self
.
dataset_1
=
self
.
dataset_1
.
shuffle
(
buffer_size
=
(
len
(
filenames_list
)))
self
.
dataset_1_size
=
len
(
filenames_list
)
self
.
dataset_1_size
=
len
(
filenames_list
)
if
self
.
dataset_1_size_min_count
!=
0
:
if
self
.
dataset_1_size_min_count
!=
0
:
self
.
dataset_1_repeat_factor
=
math
.
ceil
(
self
.
dataset_1_size_min_count
/
self
.
dataset_1_size
)
self
.
dataset_1_repeat_factor
=
math
.
ceil
(
self
.
dataset_1_size_min_count
/
self
.
dataset_1_size
)
...
@@ -261,10 +265,14 @@ class DataLoader(object):
...
@@ -261,10 +265,14 @@ class DataLoader(object):
lambda
:
(
x
,
y
)),
num_parallel_calls
=
self
.
NR_THREADS
)
lambda
:
(
x
,
y
)),
num_parallel_calls
=
self
.
NR_THREADS
)
self
.
dataset_2
=
self
.
dataset_2
.
map
(
lambda
x
,
y
:
clip
(
x
,
y
))
self
.
dataset_2
=
self
.
dataset_2
.
map
(
lambda
x
,
y
:
clip
(
x
,
y
))
self
.
dataset_1
=
self
.
dataset_1
.
shuffle
(
self
.
dataset_1_size
).
batch
(
self
.
batch_size
,
drop_remainder
=
True
).
prefetch
(
tf
.
data
.
experimental
.
AUTOTUNE
)
if
self
.
shuffle
:
self
.
dataset_1
=
self
.
dataset_1
.
shuffle
(
self
.
dataset_1_size
)
self
.
dataset_1
=
self
.
dataset_1
.
batch
(
self
.
batch_size
,
drop_remainder
=
True
).
prefetch
(
tf
.
data
.
experimental
.
AUTOTUNE
)
if
self
.
dataset_2
:
if
self
.
dataset_2
:
self
.
dataset_2
=
self
.
dataset_2
.
shuffle
(
self
.
dataset_2_size
).
batch
(
self
.
batch_size
,
drop_remainder
=
True
).
prefetch
(
tf
.
data
.
experimental
.
AUTOTUNE
)
if
self
.
shuffle
:
self
.
dataset_2
=
self
.
dataset_2
.
shuffle
(
self
.
dataset_2_size
)
self
.
dataset_2
=
self
.
dataset_2
.
batch
(
self
.
batch_size
,
drop_remainder
=
True
).
prefetch
(
tf
.
data
.
experimental
.
AUTOTUNE
)
return
self
.
dataset_1
,
self
.
dataset_2
return
self
.
dataset_1
,
self
.
dataset_2
else
:
else
:
return
self
.
dataset_1
return
self
.
dataset_1
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment