Tensor Creation
Creating Tensors from Data
from_array - Create from existing data
Create tensors from C arrays.
#include <tensr/tensr_array.h>
/* 1D array */
float data[] = {1, 2, 3, 4, 5};
size_t shape[] = {5};
Tensor* t = tensr_from_array(shape, 1, TENSR_FLOAT32, TENSR_CPU, data);
/* 2D array (matrix) */
float matrix[] = {1, 2, 3, 4, 5, 6};
size_t shape2d[] = {2, 3};
Tensor* mat = tensr_from_array(shape2d, 2, TENSR_FLOAT32, TENSR_CPU, matrix);
Initialization Functions
zeros - All zeros
ones - All ones
full - Fill with value
Range Functions
arange - Evenly spaced values
linspace - Linearly spaced values
Special Matrices
eye - Identity matrix
Complete Example
#include <tensr/tensr.h>
#include <tensr/tensr_array.h>
int main() {
/* Create from data */
float data[] = {1, 2, 3, 4, 5, 6};
size_t shape[] = {2, 3};
Tensor* a = tensr_from_array(shape, 2, TENSR_FLOAT32, TENSR_CPU, data);
/* Create initialized tensors */
Tensor* zeros = tensr_zeros(shape, 2, TENSR_FLOAT32, TENSR_CPU);
Tensor* ones = tensr_ones(shape, 2, TENSR_FLOAT32, TENSR_CPU);
/* Create ranges */
Tensor* range = tensr_arange(0.0, 10.0, 1.0, TENSR_FLOAT32, TENSR_CPU);
/* Create identity */
Tensor* eye = tensr_eye(3, TENSR_FLOAT32, TENSR_CPU);
/* Print and cleanup */
tensr_print(a);
tensr_free(a);
tensr_free(zeros);
tensr_free(ones);
tensr_free(range);
tensr_free(eye);
return 0;
}
Memory Management
Always Free Tensors
Always call tensr_free() when done with a tensor to prevent memory leaks.
Data Types
Available data types:
TENSR_FLOAT32- 32-bit float (default)TENSR_FLOAT64- 64-bit doubleTENSR_INT32- 32-bit integerTENSR_INT64- 64-bit integerTENSR_UINT8- 8-bit unsigned integerTENSR_BOOL- Boolean
Device Selection
Create tensors on different devices: