184bool noodle_fs_init(uint8_t clk_pin, uint8_t cmd_pin, uint8_t d0_pin);
189bool noodle_fs_init(uint8_t clk_pin, uint8_t cmd_pin, uint8_t d0_pin, uint8_t d1_pin, uint8_t d2_pin, uint8_t d3_pin);
388uint16_t
noodle_do_pooling(
const float *input, uint16_t W, uint16_t K, uint16_t S,
const char *fn);
393uint16_t
noodle_do_pooling(
const float *input, uint16_t W, uint16_t K, uint16_t S, NDL_File &
fo);
398uint16_t
noodle_do_pooling(
const float *input, uint16_t W, uint16_t K, uint16_t S,
float *output);
409uint16_t
noodle_do_pooling1d(
float *input, uint16_t W, uint16_t K, uint16_t S,
const char *fn);
445 CBFPtr progress_cb = NULL);
458 CBFPtr progress_cb = NULL);
471 CBFPtr progress_cb = NULL);
484 CBFPtr progress_cb = NULL);
497 CBFPtr progress_cb = NULL);
510 CBFPtr progress_cb = NULL);
523 CBFPtr progress_cb = NULL);
640uint16_t
noodle_do_conv1d(
float *input,
float *kernel, uint16_t W, uint16_t K,
641 float *output, uint16_t P, uint16_t S);
653uint16_t
noodle_do_conv(
byte *grid,
const float *kernel, uint16_t K, uint16_t W,
654 float *output, uint16_t P, uint16_t S);
659uint16_t
noodle_do_conv(
float *grid,
const float *kernel, uint16_t K, uint16_t W,
660 float *output, uint16_t P, uint16_t S);
721uint16_t
noodle_relu(
float *input_output, uint16_t n);
769uint16_t
noodle_fcn(
const int8_t *input, uint16_t n_inputs, uint16_t n_outputs,
770 const char *out_fn,
const FCNFile &fcn,
771 CBFPtr progress_cb = NULL);
787uint16_t
noodle_fcn(
const char *in_fn, uint16_t n_inputs, uint16_t n_outputs,
788 const char *out_fn,
const FCNFile &fcn,
789 CBFPtr progress_cb = NULL);
804uint16_t
noodle_fcn(
const float *input, uint16_t n_inputs, uint16_t n_outputs,
805 float *output,
const FCNMem &fcn,
806 CBFPtr progress_cb = NULL);
820uint16_t
noodle_fcn(
const byte *input, uint16_t n_inputs, uint16_t n_outputs,
821 float *output,
const FCNFile &fcn,
822 CBFPtr progress_cb = NULL);
836uint16_t
noodle_fcn(
const int8_t *input, uint16_t n_inputs, uint16_t n_outputs,
837 float *output,
const FCNFile &fcn,
838 CBFPtr progress_cb = NULL);
854uint16_t
noodle_fcn(
const char *in_fn, uint16_t n_inputs, uint16_t n_outputs,
855 float *output,
const FCNFile &fcn,
856 CBFPtr progress_cb = NULL);
871uint16_t
noodle_fcn(
const float *input, uint16_t n_inputs, uint16_t n_outputs,
872 float *output,
const FCNFile &fcn,
887uint16_t
noodle_fcn(
const float *input, uint16_t n_inputs, uint16_t n_outputs,
888 const char *out_fn,
const FCNFile &fcn,
906uint16_t
noodle_flat(
const char *in_fn,
float *output, uint16_t V, uint16_t n_filters);
917uint16_t
noodle_flat(
float *input,
float *output, uint16_t V, uint16_t n_filters);
1012 uint16_t n_channels,
1031 const float **gamma,
1093 const float *bn_params,
1107 const float *bn_params,
byte noodle_read_byte(NDL_File &f)
Read a byte value fron an opened file handler and store as an integer text line.
Definition noodle.cpp:143
uint16_t noodle_do_pooling(const float *input, uint16_t W, uint16_t K, uint16_t S, const char *fn)
2D pooling over a V×V map, writing results to a file (one float per line).Pooling mode (MAX or MEAN) ...
Definition noodle.cpp:274
void noodle_write_byte(NDL_File &f, byte d)
Write a byte value as an integer text line to an opend file.
Definition noodle.cpp:155
void noodle_write_float(NDL_File &f, float d)
Definition noodle.cpp:150
uint16_t noodle_do_pooling1d(float *input, uint16_t W, uint16_t K, uint16_t S, const char *fn)
Definition noodle.cpp:1273
float noodle_get_padded_x(byte *grid, int16_t i, int16_t j, int16_t W, int16_t P)
Get padded input sample from a byte grid with zero padding.Noodle uses symmetric, stride-independent ...
Definition noodle.cpp:236
uint16_t noodle_do_conv(byte *grid, const float *kernel, uint16_t K, uint16_t W, float *output, uint16_t P, uint16_t S)
2D valid/same convolution with zero padding and stride, accumulating into output.Output spatial size ...
Definition noodle.cpp:451
uint16_t noodle_do_conv1d(float *input, float *kernel, uint16_t W, uint16_t K, float *output, uint16_t P, uint16_t S)
Definition noodle.cpp:1251
uint16_t noodle_do_bias(float *output, float bias, uint16_t n)
Definition noodle.cpp:258
float noodle_read_float(NDL_File &f)
Read a float up to the next newline.
Definition noodle.cpp:136
uint16_t noodle_do_bias_act(float *output, float bias, uint16_t n, Activation act)
Add bias to each element of a V×V map (in-place) and optionally apply activation.
Definition noodle.cpp:1668
uint16_t noodle_flat(const char *in_fn, float *output, uint16_t V, uint16_t n_filters)
Definition noodle.cpp:898
uint16_t noodle_relu(float *input_output, uint16_t n)
Definition noodle.cpp:1243
uint16_t noodle_fcn(const int8_t *input, uint16_t n_inputs, uint16_t n_outputs, const char *out_fn, const FCNFile &fcn, CBFPtr progress_cb=NULL)
Definition noodle.cpp:937
uint16_t noodle_gap(float *inout, uint16_t C, uint16_t W)
Definition noodle.cpp:1841
float * noodle_create_buffer(uint16_t size)
Allocate a raw float buffer of size bytes.
Definition noodle.cpp:164
uint16_t noodle_conv_float(const char *in_fn, uint16_t n_inputs, uint16_t n_outputs, const char *out_fn, uint16_t W, const Conv &conv, const Pool &pool, CBFPtr progress_cb=NULL)
File→File 2D conv with FLOAT input feature maps.
Definition noodle.cpp:637
uint16_t noodle_bn_relu(float *x, uint16_t C, uint16_t W, const float *gamma, const float *beta, const float *mean, const float *var, float eps=1e-3)
Definition noodle.cpp:1925
void noodle_delete_file(const char *fn)
Delete a file if it exists.
Definition noodle.cpp:160
void(* CBFPtr)(float progress)
Progress callback type used by long-running routines.
Definition noodle.h:133
void noodle_find_max(float *input, uint16_t n, float &max_val, uint16_t &max_idx)
Definition noodle.cpp:1949
uint16_t noodle_conv1d(const char *in_fn, uint16_t n_inputs, const char *out_fn, uint16_t n_outputs, uint16_t W, const Conv &conv, const Pool &pool, CBFPtr progress_cb=NULL)
Definition noodle.cpp:1311
void noodle_read_top_line(const char *fn, char *line, size_t maxlen)
Read the first line of a given text file.
Definition noodle.cpp:1683
void noodle_delete_buffer(float *buffer)
Free a buffer allocated by noodle_create_buffer.
Definition noodle.cpp:168
void noodle_reset_buffer(float *buffer, uint16_t n)
Fill buffer with zeros (n floats).
Definition noodle.cpp:581
void noodle_array_to_file(float *array, const char *fn, uint16_t n)
Write an array of n floats to fn, one value per line. File will be opened and closed.
Definition noodle.cpp:172
float * noodle_slice(float *flat, size_t W, size_t z)
Definition noodle.cpp:21
void noodle_unpack_bn_params(const float *bn_params, uint16_t C, const float **gamma, const float **beta, const float **mean, const float **var)
Definition noodle.cpp:1869
void noodle_grid_from_file(const char *fn, byte *buffer, uint16_t K)
Definition noodle.cpp:514
bool noodle_fs_init()
Definition noodle.cpp:94
void noodle_setup_temp_buffers(void *b1, void *b2)
Provide two reusable temporary buffers used internally by file-streaming operations....
Definition noodle.cpp:27
void noodle_array_from_file(const char *fn, float *buffer, uint16_t K)
Read a float array of length K from fn (one value per line).
Definition noodle.cpp:498
uint16_t noodle_conv_byte(const char *in_fn, uint16_t n_inputs, uint16_t n_outputs, const char *out_fn, uint16_t W, const Conv &conv, const Pool &pool, CBFPtr progress_cb=NULL)
File→File 2D conv with BYTE input feature maps.
Definition noodle.cpp:589
size_t noodle_read_bytes_until(NDL_File &file, char terminator, char *buffer, size_t length)
Read bytes from a file until a terminator or length-1 (NULL terminated).
Definition noodle.cpp:33
uint16_t noodle_soft_max(float *input_output, uint16_t n)
Definition noodle.cpp:1215
uint16_t noodle_dwconv_float(const char *in_fn, uint16_t n_channels, const char *out_fn, uint16_t W, const Conv &conv, const Pool &pool, CBFPtr progress_cb)
Definition noodle.cpp:1704
uint16_t noodle_sigmoid(float *input_output, uint16_t n)
Definition noodle.cpp:1235
void noodle_grid_to_file(byte *grid, const char *fn, uint16_t n)
Write an n×n byte grid to fn as bytes, row-major. File will be opened and closed.
Definition noodle.cpp:188
uint16_t noodle_bn(float *x, uint16_t C, uint16_t W, const float *gamma, const float *beta, const float *mean, const float *var, float eps=1e-3)
Definition noodle.cpp:1881
NDL_File fo
Definition noodle.cpp:16
NDL_File fi
Definition noodle.cpp:16
unsigned char byte
Minimal Arduino-compatible alias when not building for Arduino.
Definition noodle.h:59
Activation
Definition noodle.h:73
@ ACT_SOFTMAX
Definition noodle.h:73
@ ACT_RELU
Definition noodle.h:73
@ ACT_NONE
Definition noodle.h:73
Memory-backed convolution parameters.
Definition noodle.h:103
Activation act
Definition noodle.h:111
uint16_t P
Padding.
Definition noodle.h:105
uint16_t K
Kernel size.
Definition noodle.h:104
const float * weight
Definition noodle.h:108
uint16_t S
Stride.
Definition noodle.h:106
const float * bias
Definition noodle.h:109
File-backed convolution parameters.
Definition noodle.h:84
const char * bias_fn
Definition noodle.h:90
uint16_t S
Stride.
Definition noodle.h:87
uint16_t P
Padding.
Definition noodle.h:86
uint16_t K
Kernel size.
Definition noodle.h:85
Activation act
Definition noodle.h:92
const char * weight_fn
Definition noodle.h:89
const char * weight_fn
Definition noodle.h:738
const char * bias_fn
Definition noodle.h:739
Activation act
Definition noodle.h:740
Activation act
Definition noodle.h:750
const float * weight
Definition noodle.h:748
const float * bias
Definition noodle.h:749
const char * weight_fn
Definition noodle.h:728
const char * bias_fn
Definition noodle.h:729
Activation act
Definition noodle.h:730
2D pooling parameters. Use M = 1 and T = 1 for identity (no pooling).
Definition noodle.h:123
uint16_t M
Pool kernel.
Definition noodle.h:124
uint16_t T
Pool stride.
Definition noodle.h:125