Delete python directory

This commit is contained in:
lucasdelimanogueira 2024-04-29 02:21:38 -03:00 committed by GitHub
parent 62f44fb772
commit 95dc5b89d1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 0 additions and 159 deletions

View file

@ -1,61 +0,0 @@
import ctypes
class CTensor(ctypes.Structure):
_fields_ = [
('data', ctypes.POINTER(ctypes.c_float)),
('strides', ctypes.POINTER(ctypes.c_int)),
('shape', ctypes.POINTER(ctypes.c_int)),
('ndim', ctypes.c_int)
]
class Tensor:
def __init__(self, data):
data, shape = self.flatten(data)
print(data, shape)
self.lib = ctypes.CDLL("../build/libtensor.so") # Adjust the path to the shared library
self.data = (ctypes.c_float * len(data))(*data)
self.shape = shape
self.ndim = len(shape)
self.lib.create_tensor.argtypes = [ctypes.POINTER(ctypes.c_float), ctypes.POINTER(ctypes.c_int), ctypes.c_int]
self.lib.create_tensor.restype = ctypes.POINTER(CTensor)
self.tensor = self.lib.create_tensor(
self.data,
(ctypes.c_int * len(shape))(*shape),
ctypes.c_int(len(shape))
)
def flatten(self, nested_list):
flat_data = []
shape = [len(nested_list), len(nested_list[0])]
for sublist in nested_list:
for item in sublist:
flat_data.append(item)
return flat_data, shape
def __getitem__(self, indices):
if len(indices) != self.ndim:
raise ValueError("Number of indices must match the number of dimensions")
self.lib.get_item.argtypes = [ctypes.POINTER(CTensor), ctypes.POINTER(ctypes.c_int)]
self.lib.get_item.restype = ctypes.c_float
indices = (ctypes.c_int * len(indices))(*indices)
value = self.lib.get_item(self.tensor, indices)
return value
def shape(self):
return f"Tensor(shape={self.shape})"
def __str__(self):
result = ""
for i in range(self.shape[0]):
for j in range(self.shape[1]):
result += str(self[i, j]) + " "
result += "\n"
return result.strip()
def __repr__(self):
return self.__str__()

View file

@ -1,98 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0, 1, 2, 0, 2, 2] [2, 3, 3]\n",
"Tensor shape: [2, 3, 3]\n",
"Tensor created successfully\n",
"Tensor information:\n",
"Number of dimensions: 3\n",
"Shape: [2, 3, 3]\n",
"Data:\n",
"[0.00, 1.00, 2.00, 0.00, 2.00, 2.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00]\n"
]
}
],
"source": [
"from tensor import Tensor\n",
"\n",
"data = [[0, 1, 2], [0, 2, 2], [0, 1, 2]]\n",
"tensor = Tensor(data)\n",
"print(\"Tensor shape:\", tensor.shape)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tensor created successfully\n",
"Tensor information:\n",
"Number of dimensions: 2\n",
"Shape: [3, 3]\n",
"Data:\n",
"[0.10, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90]\n"
]
},
{
"data": {
"text/plain": [
"0.10000000149011612 0.20000000298023224 0.30000001192092896 \n",
"0.4000000059604645 0.5 0.6000000238418579 \n",
"0.699999988079071 0.800000011920929 0.8999999761581421"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"data = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]\n",
"shape = [3, 3]\n",
"tensor = Tensor(data, shape)\n",
"tensor\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}