native_neural_network 0.1.6

Lib no_std Rust for native neural network (.rnn)
Documentation
pub use crate::network::NeuralNetwork;
pub use crate::network::{NetworkStats, network_stats, validate_network_parts};
pub use crate::tensor::TensorView;
pub use crate::tensor::{tensor_fill, tensor_scale_in_place, tensor_add_in_place};
pub use crate::scratch::Scratch;
pub use crate::rnn_format::{parse_rnn_from_bytes, RnnHandle, BlobMeta};
pub use crate::rnn_api::{
    RnnApiError,
    rnn_required_dense_from_topology,
    rnn_required_dense_from_bytes_v1,
    rnn_dense_required_buffers,
    rnn_dense_required_infer_scratch_from_specs,
    rnn_validate_dense_topology,
    rnn_validate_dense_counts,
    rnn_pack_dense_v1,
    rnn_unpack_dense_v1,
    rnn_run_dense_v1,
};
pub use crate::crypto::{
    Sha256Ctx,
    Sha512Ctx,
    sha256_bytes,
    sha512_bytes,
    digest_to_hex_lower,
    constant_time_eq,
    verify_sha256,
    verify_sha512,
};
pub use crate::conv3d::{conv3d_forward, conv3d_layout_compatible, conv3d_is_compatible};
pub use crate::conv5d::{conv5d_forward, conv5d_backward};
pub use crate::sphere5d::{Sphere5D, NeuronPoint, SphereError};
pub use crate::activations::ActivationKind;
pub use crate::layers::{LayerSpec, DenseLayerDesc, LayerPlan, LayerError};
pub use crate::engine::{forward_dense_plan, forward_dense_plan_big_kernel, required_batch_scratch_len, ForwardError};
pub use crate::engine::{required_single_infer_scratch, validate_forward_io};
pub use crate::model_format::{
    encode_dense_model_v1,
    decode_dense_model_v1,
    encoded_size_v1,
    DecodedCounts,
    ModelFormatError,
};
pub use crate::losses::{LossKind, LossError, loss_and_gradient};
pub use crate::losses::{reduce_sum, reduce_mean};
pub use crate::metrics::{MetricError, mse, mae, argmax, accuracy_top1_from_one_hot, cross_entropy_from_probabilities};
pub use crate::metrics::RunningMean;
pub use crate::initializers::{InitKind, InitError, expected_parameter_counts, initialize_dense_parameters};
pub use crate::inference::{InferenceError, softmax_stable, forward_dense_batch};
pub use crate::inference::{normalize_logits_in_place, argmax_index};
pub use crate::trainer::{DenseSgdConfig, TrainError, required_train_buffer_len, dense_sgd_step};
pub use crate::optimizers::{OptimizerKind, OptimizerError, optimizer_state_len, apply_optimizer_step};
pub use crate::schedulers::{LrSchedule, ScheduleError, compute_learning_rate};
pub use crate::normalization::{NormError, layer_norm_in_place, layer_norm, rms_norm_in_place, rms_norm};
pub use crate::attention::{AttentionError, AttentionMask, AttentionShape, scaled_dot_product_attention};
pub use crate::quantization::{QuantError, quantize_i8_symmetric, dequantize_i8_symmetric, matmul_i8_f32};
pub use crate::model_config::{TransformerConfig, ConfigError};
pub use crate::model_config::{tiny_transformer, small_transformer, base_transformer};
pub use crate::runtime::{
    RuntimeProfile,
    RuntimeEstimate,
    RuntimeError,
    RuntimeFlopsEstimate,
    ThroughputEstimate,
    BudgetFit,
    estimate_runtime_memory,
    estimate_runtime_flops,
    estimate_tokens_per_second,
    check_runtime_budget,
    fit_from_estimate,
};
pub use crate::sampling::{SamplingError, softmax_temperature, argmax_sample, sample_from_cumulative, top_k_mask, top_p_cutoff};
pub use crate::kv_cache::{KvCacheError, KvCacheView};
pub use crate::rope::{RopeError, apply_rope_in_place};
pub use crate::embeddings::{EmbeddingError, gather_embeddings, tied_output_projection};
pub use crate::lora::{LoraError, apply_lora_delta};
pub use crate::moe::{MoeError, top1_gating, route_top1};
pub use crate::beam_search::{BeamError, select_top_beams};
pub use crate::gradients::{GradientError, l2_norm, clip_by_global_norm, all_finite};
pub use crate::batching::{BatchError, pad_sequences_u32, make_padding_mask};
pub use crate::profiler::OpCounter;
pub use crate::visualization::get_network_from_rnn;