MLX
 
Loading...
Searching...
No Matches
io.h
Go to the documentation of this file.
1// Copyright © 2023-2024 Apple Inc.
2
3#pragma once
4
5#include <unordered_map>
6#include <variant>
7
8#include "mlx/array.h"
9#include "mlx/io/load.h"
10#include "mlx/stream.h"
11#include "mlx/utils.h"
12
13namespace mlx::core {
15 std::variant<std::monostate, array, std::string, std::vector<std::string>>;
16using GGUFLoad = std::pair<
17 std::unordered_map<std::string, array>,
18 std::unordered_map<std::string, GGUFMetaData>>;
19using SafetensorsLoad = std::pair<
20 std::unordered_map<std::string, array>,
21 std::unordered_map<std::string, std::string>>;
22
24void save(std::shared_ptr<io::Writer> out_stream, array a);
25
27void save(std::string file, array a);
28
30array load(std::shared_ptr<io::Reader> in_stream, StreamOrDevice s = {});
31
33array load(std::string file, StreamOrDevice s = {});
34
37 std::shared_ptr<io::Reader> in_stream,
38 StreamOrDevice s = {});
40 const std::string& file,
41 StreamOrDevice s = {});
42
44 std::shared_ptr<io::Writer> in_stream,
45 std::unordered_map<std::string, array>,
46 std::unordered_map<std::string, std::string> metadata = {});
48 std::string file,
49 std::unordered_map<std::string, array>,
50 std::unordered_map<std::string, std::string> metadata = {});
51
53
54GGUFLoad load_gguf(const std::string& file, StreamOrDevice s = {});
55
57 std::string file,
58 std::unordered_map<std::string, array> array_map,
59 std::unordered_map<std::string, GGUFMetaData> meta_data = {});
60
61} // namespace mlx::core
Definition array.h:24
Definition allocator.h:7
GGUFLoad load_gguf(const std::string &file, StreamOrDevice s={})
Load array map and metadata from .gguf file format.
std::pair< std::unordered_map< std::string, array >, std::unordered_map< std::string, std::string > > SafetensorsLoad
Definition io.h:19
void save_gguf(std::string file, std::unordered_map< std::string, array > array_map, std::unordered_map< std::string, GGUFMetaData > meta_data={})
std::variant< std::monostate, array, std::string, std::vector< std::string > > GGUFMetaData
Definition io.h:14
void load(array &out, size_t offset, const std::shared_ptr< io::Reader > &reader, bool swap_endianess)
std::variant< std::monostate, Stream, Device > StreamOrDevice
Definition utils.h:15
SafetensorsLoad load_safetensors(std::shared_ptr< io::Reader > in_stream, StreamOrDevice s={})
Load array map from .safetensors file format.
void save_safetensors(std::shared_ptr< io::Writer > in_stream, std::unordered_map< std::string, array >, std::unordered_map< std::string, std::string > metadata={})
std::pair< std::unordered_map< std::string, array >, std::unordered_map< std::string, GGUFMetaData > > GGUFLoad
Definition io.h:16
void save(std::shared_ptr< io::Writer > out_stream, array a)
Save array to out stream in .npy format.