命名空间 faiss::nn

namespace nn

类型定义

using Tensor2D = Tensor2DTemplate<float>
using Int32Tensor2D = Tensor2DTemplate<int32_t>
template<typename T>
struct Tensor2DTemplate

公共函数

Tensor2DTemplate(size_t n0, size_t n1, const T *data = nullptr)
Tensor2DTemplate &operator+=(const Tensor2DTemplate&)
Tensor2DTemplate column(size_t j) const

获取第 j 列作为单列 Tensor2D

inline size_t numel() const
inline T *data()
inline const T *data() const

公共成员

size_t shape[2]
std::vector<T> v
struct Linear
#include <NeuralNet.h>

minimal translation of nn.Linear

公共函数

Linear(size_t in_features, size_t out_features, bool bias = true)
Tensor2D operator()(const Tensor2D &x) const

公共成员

size_t in_features
size_t out_features
std::vector<float> weight
std::vector<float> bias
struct Embedding
#include <NeuralNet.h>

nn.Embedding的最小化翻译

公共函数

Embedding(size_t num_embeddings, size_t embedding_dim)
Tensor2D operator()(const Int32Tensor2D&) const
inline float *data()
inline const float *data() const

公共成员

size_t num_embeddings
size_t embedding_dim
std::vector<float> weight
struct FFN
#include <NeuralNet.h>

前馈层,扩展到隐藏维度,应用 ReLU 非线性,然后映射回原始维度

公共函数

inline FFN(int d, int h)
Tensor2D operator()(const Tensor2D &x) const

公共成员

Linear linear1
Linear linear2