30 #ifndef LBANN_CALLBACKS_SUMMARIZE_IMAGES_HPP_INCLUDED 31 #define LBANN_CALLBACKS_SUMMARIZE_IMAGES_HPP_INCLUDED 35 #include <google/protobuf/message.h> 42 class Callback_CallbackSummarizeImages;
56 virtual std::vector<std::pair<size_t, El::Int>>
57 get_image_indices(
model const&)
const = 0;
58 virtual std::string get_tag(std::string
const& layer_name,
60 El::Int
epoch)
const = 0;
61 virtual void write_strategy_proto(
62 lbann_data::Callback_CallbackSummarizeImages& msg)
const = 0;
87 MatchType match_type = MatchType::NOMATCH,
88 size_t num_images = 10)
89 : m_cat_accuracy_layer_name(cat_accuracy_layer_name),
90 m_match_type(match_type),
91 m_num_images(num_images)
97 std::vector<std::pair<size_t, El::Int>>
98 get_image_indices(
model const& m)
const final;
101 std::string get_tag(std::string
const& layer_name,
103 El::Int
epoch)
const final;
107 void write_strategy_proto(
108 lbann_data::Callback_CallbackSummarizeImages& msg)
const final;
113 bool meets_criteria(
const DataType& match)
const noexcept;
126 std::unique_ptr<image_output_strategy>
142 size_t num_images = 10)
143 : m_input_layer_name{input_layer_name}, m_num_images{num_images}
149 std::vector<std::pair<size_t, El::Int>>
150 get_image_indices(
model const& m)
const final;
153 std::string get_tag(std::string
const& layer_name,
155 El::Int
epoch)
const final;
158 void write_strategy_proto(
159 lbann_data::Callback_CallbackSummarizeImages& msg)
const final;
172 mutable std::unordered_map<model const*, std::vector<size_t>>
177 std::unique_ptr<image_output_strategy>
195 std::unique_ptr<image_output_strategy> strategy,
196 std::string
const& img_source_layer_name,
197 uint64_t interval = 1,
198 std::string
const& img_format =
".jpg");
204 std::string
name()
const override {
return "summarize_images"; }
207 void on_batch_evaluate_end(
model* m)
override;
210 void write_specific_proto(lbann_data::Callback& proto)
const final;
214 void dump_images_to_summary(
model const& m)
const;
241 const google::protobuf::Message&,
242 const std::shared_ptr<lbann_summary>& summarizer);
247 #endif // LBANN_CALLBACKS_SUMMARIZE_IMAGES_HPP_INCLUDED std::unique_ptr< image_output_strategy > build_track_sample_ids_strategy_from_pbuf(google::protobuf::Message const &)
std::unique_ptr< image_output_strategy > build_categorical_accuracy_strategy_from_pbuf(google::protobuf::Message const &)
uint64_t m_epoch_interval
autoencoder_strategy(std::string const &input_layer_name, size_t num_images=10)
Constructor.
size_t m_num_images
Number of images to be tracked.
std::string const m_cat_accuracy_layer_name
Name of categorical accuracy layer.
std::string m_img_format
Image file format. Valid options: .jpg, .png, .pgm.
Neural network tensor operation.
Layer const & get_layer_by_name(model const &m, std::string const &layer_name)
Get a layer from model based on name.
std::string m_img_source_layer_name
std::shared_ptr< lbann_summary > m_summarizer
std::unordered_map< model const *, std::vector< size_t > > m_shuffled_indices
A map from models to shuffled indices.
Base class for callbacks during training/testing.
categorical_accuracy_strategy(std::string const &cat_accuracy_layer_name, MatchType match_type=MatchType::NOMATCH, size_t num_images=10)
summarize_images Constructor.
MatchType m_match_type
Criterion to dump images.
Abstract base class for neural network models.
size_t m_num_images
Number of images to be dumped per epoch.
Subclass of image_output_strategy to dump autoencoder images.
std::string m_input_layer_name
Name of input layer.
Callback to dump images to event files based on strategy.
std::unordered_set< El::Int > m_tracked_images
Sample indices of images to track.
std::string name() const override
Return name of callback.
std::unique_ptr< image_output_strategy > m_strategy
Interface for strategies for determining which images to output to the summarizer.
std::unique_ptr< callback_base > build_summarize_images_callback_from_pbuf(const google::protobuf::Message &, const std::shared_ptr< lbann_summary > &summarizer)