Basic Conversion Examples
Simple NumPy to PyTorch
from arraybridge import convert_memory, detect_memory_type
import numpy as np
# Create NumPy array
np_data = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float32)
# Convert to PyTorch
torch_data = convert_memory(
data=np_data,
source_type='numpy',
target_type='torch',
gpu_id=0
)
print(f"Original type: {detect_memory_type(np_data)}")
print(f"Converted type: {detect_memory_type(torch_data)}")
Preserving Data Types
import numpy as np
from arraybridge import convert_memory
# Create uint8 array (common for images)
image = np.random.randint(0, 256, size=(100, 100), dtype=np.uint8)
# Convert to PyTorch - dtype is preserved
torch_image = convert_memory(image, 'numpy', 'torch', gpu_id=0)
print(f"NumPy dtype: {image.dtype}")
print(f"PyTorch dtype: {torch_image.dtype}") # Still uint8
Round-Trip Conversion
import numpy as np
from arraybridge import convert_memory
# Original data
original = np.array([1.5, 2.5, 3.5], dtype=np.float32)
# NumPy -> PyTorch -> CuPy -> NumPy
step1 = convert_memory(original, 'numpy', 'torch', gpu_id=0)
step2 = convert_memory(step1, 'torch', 'cupy', gpu_id=0)
final = convert_memory(step2, 'cupy', 'numpy', gpu_id=0)
# Verify data integrity
np.testing.assert_array_almost_equal(original, final)
3D Array Conversion
import numpy as np
from arraybridge import convert_memory
# Create 3D volume (e.g., medical imaging)
volume = np.random.rand(50, 512, 512).astype(np.float32)
# Convert to GPU framework for processing
gpu_volume = convert_memory(volume, 'numpy', 'cupy', gpu_id=0)
# Process on GPU...
# Convert back
result = convert_memory(gpu_volume, 'cupy', 'numpy', gpu_id=0)
Automatic Type Detection
from arraybridge import detect_memory_type, convert_memory
import numpy as np
def convert_to_numpy(data):
"""Convert any supported type to NumPy."""
source_type = detect_memory_type(data)
if source_type == 'numpy':
return data
return convert_memory(data, source_type, 'numpy', gpu_id=0)
# Works with any framework
np_data = np.array([1, 2, 3])
result = convert_to_numpy(np_data)