18#ifndef TESSERACT_LSTM_WEIGHTMATRIX_H_
19#define TESSERACT_LSTM_WEIGHTMATRIX_H_
42 for (
int i = 0;
i < size1; ++
i) {
48 for (
int i = 0;
i < size1; ++
i) {
54 int num_features =
dim1();
56 for (
int y = 0;
y < num_features; ++
y) {
57 for (
int t = 0; t < width; ++t) {
58 if (num == 0 || t < num || t + num >= width) {
59 tprintf(
" %g",
static_cast<double>((*
this)(
y, t)));
108 return int_mode_ ? wi_.
dim1() : wf_.
dim1();
153 void Update(
float learning_rate,
float momentum,
float adam_beta,
int num_samples);
175 std::vector<TFloat> scales_;
184 std::vector<int8_t> shaped_w_;
void tprintf(const char *format,...)
void put(ICOORD pos, const TFloat &thing)
int RoundInputs(int size) const
static const IntSimdMatrix * intSimdMatrix
~TransposedArray() override
void Transpose(const GENERIC_2D_ARRAY< TFloat > &input)
void WriteStrided(int t, const double *data)
void WriteStrided(int t, const float *data)
void PrintUnTransposed(int num)
void SumOuterTransposed(const TransposedArray &u, const TransposedArray &v, bool parallel)
bool Serialize(bool training, TFile *fp) const
bool DeSerializeOld(bool training, TFile *fp)
void MultiplyAccumulate(const TFloat *v, TFloat *inout)
int InitWeightsFloat(int no, int ni, bool use_adam, float weight_range, TRand *randomizer)
void Update(float learning_rate, float momentum, float adam_beta, int num_samples)
TFloat GetDW(int i, int j) const
const TFloat * GetWeights(int index) const
void Debug2D(const char *msg)
void AddDeltas(const WeightMatrix &other)
int RemapOutputs(const std::vector< int > &code_map)
void VectorDotMatrix(const TFloat *u, TFloat *v) const
void MatrixDotVector(const TFloat *u, TFloat *v) const
bool DeSerialize(bool training, TFile *fp)
int RoundInputs(int size) const
void CountAlternators(const WeightMatrix &other, TFloat *same, TFloat *changed) const