.. _program_listing_file_src_graph_node_initializers.h: Program Listing for File node_initializers.h ============================================ |exhale_lsh| :ref:`Return to documentation for file ` (``src/graph/node_initializers.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // TODO: move to backend, into graph/ #pragma once #include "common/config.h" #include "tensors/tensor.h" #include "tensors/tensor_operators.h" #include #include namespace marian { class ExpressionGraph; // Forward declaration namespace inits { class NodeInitializer { protected: Weak allocator_; public: virtual void apply(Tensor t) = 0; void setAllocator(Ptr allocator) { allocator_ = allocator; } virtual ~NodeInitializer() {} }; Ptr dummy(); Ptr fromLambda(std::function&& func); Ptr fromLambda(std::function&& func, Type intermediateType); Ptr fromValue(float value); static Ptr zeros() { return fromValue(0.0f); } static Ptr ones() { return fromValue(1.0f); } Ptr eye(float value = 1.f); Ptr normal(float mean = 0.f, float stddev = 1.f); Ptr uniform(float a = 0.f, float b = 1.f); Ptr bernoulli(float p, float scale = 1.f, float shift = 0.f); Ptr glorotUniform(bool fanIn = false, bool fanOut = false, float scale = 1.f); Ptr glorotNormal(bool fanIn = false, bool fanOut = false, float scale = 1.f); Ptr dropout(float dropoutProbability); Ptr gumbel(float eps = 1e-5f); template Ptr fromVector(const std::vector& v); template Ptr fromVector(std::vector&& v); Ptr fromSparseVector(std::pair, std::vector>& v); Ptr fromItem(const io::Item& item); Ptr fromTensor(Tensor tensor); Ptr fromWord2vec(const std::string& file, int dimVoc, int dimEmb, bool normalize = false); Ptr sinusoidalPositionEmbeddings(int start); template Ptr range(T begin, T end, T step = (T)1); } // namespace inits } // namespace marian