Class: Torch::Utils::Data::DataPipes::FilterIterDataPipe

Inherits:
IterDataPipe show all
Defined in:
lib/torch/utils/data/data_pipes/filter_iter_data_pipe.rb

Instance Method Summary collapse

Methods inherited from IterDataPipe

functional_datapipe, functions, register_datapipe_as_function, #reset

Constructor Details

#initialize(datapipe, &block) ⇒ FilterIterDataPipe

Returns a new instance of FilterIterDataPipe.



8
9
10
11
# File 'lib/torch/utils/data/data_pipes/filter_iter_data_pipe.rb', line 8

def initialize(datapipe, &block)
  @datapipe = datapipe
  @filter_fn = block
end

Instance Method Details

#eachObject



13
14
15
16
17
18
19
20
21
22
# File 'lib/torch/utils/data/data_pipes/filter_iter_data_pipe.rb', line 13

def each
  @datapipe.each do |data|
    filtered = return_if_true(data)
    if non_empty?(filtered)
      yield filtered
    else
      Iter::StreamWrapper.close_streams(data)
    end
  end
end

#non_empty?(data) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/torch/utils/data/data_pipes/filter_iter_data_pipe.rb', line 30

def non_empty?(data)
  !data.nil?
end

#return_if_true(data) ⇒ Object



24
25
26
27
28
# File 'lib/torch/utils/data/data_pipes/filter_iter_data_pipe.rb', line 24

def return_if_true(data)
  condition = @filter_fn.call(data)

  data if condition
end