/
frame_label_data.py
45 lines (42 loc) · 2 KB
/
frame_label_data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import config
import data_io
from itertools import izip
@config.option("left_context","Number of frame contexts to the left.",
type=config.int,default=5)
@config.option("right_context","Number of frame contexts to the right.",
type=config.int,default=5)
def create_split_streams(frame_files,label_files,left_context,right_context):
streams = []
for frame_file,label_file in izip(frame_files,label_files):
frame_stream = data_io.stream_file(frame_file)
frame_stream = data_io.context(frame_stream,
left=left_context,right=right_context)
label_stream = data_io.stream_file(label_file)
stream = data_io.zip_streams(frame_stream,label_stream)
streams.append(stream)
return streams
@config.option("training_frame_files","Files for training frames.",
type=config.file,nargs='+')
@config.option("training_label_files","Files for training labels.",
type=config.file,nargs='+')
def training_stream(training_frame_files,training_label_files):
split_streams = create_split_streams(training_frame_files,
training_label_files)
split_streams = [ data_io.buffered_random(s,buffer_items=200)
for s in split_streams ]
split_streams = [ data_io.chop(s) for s in split_streams ]
stream = data_io.random_select_stream(*split_streams)
stream = data_io.buffered_random(stream,buffer_items=200)
return stream
@config.option("validation_frame_files","Files for validation frames.",
type=config.file,nargs='+')
@config.option("validation_label_files","Files for validation labels.",
type=config.file,nargs='+')
def validation_stream(validation_frame_files,validation_label_files):
from itertools import chain
split_streams = create_split_streams(
validation_frame_files,
validation_label_files
)
stream = chain(*split_streams)
return stream