Skip to content

Commit

Permalink
Merge pull request #1 from nhatdongdang/feature/base-program
Browse files Browse the repository at this point in the history
Add base program implementation for neural network in C
  • Loading branch information
rozukke authored Jun 25, 2024
2 parents 8cfc224 + af20594 commit 4ec6297
Show file tree
Hide file tree
Showing 58 changed files with 390 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
BasedOnStyle: LLVM
IndentWidth: 4
PointerAlignment: Left
ColumnLimit: 120
AlwaysBreakTemplateDeclarations: true
10 changes: 10 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
cmake_minimum_required(VERSION 3.10)

# Set the project name
project(ichida-algo)

set(CMAKE_CXX_FLAGS "-O3 -Wall -Wextra")
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED True)

add_executable(speed_cpu src/main.c)
31 changes: 31 additions & 0 deletions speed_demo_cpu.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

if [ "$#" -ne 2 ]; then
echo "Usage: speed_cpu <relative_path_to_weights_and_biases.txt> <relative_path_to_input_tensor_directory>"
exit 1
fi

weights_and_biases=$1
input_tensor_dir=$2

binary="speed_cpu"

if [ ! -f "$binary" ]; then
echo "Binary $binary not found!"
exit 1
fi

start_time=$(date +%s)
./$binary "$weights_and_biases" "$input_tensor_dir"

end_time=$(date +%s)
execution_time=$((end_time - start_time))

if [ ! -f "results.csv" ]; then
echo "Error: results.csv not found!"
exit 1
else
echo "results.csv found!"
fi

echo "Execution time: $execution_time seconds"
31 changes: 31 additions & 0 deletions speed_demo_gpu.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

if [ "$#" -ne 2 ]; then
echo "Usage: speed_gpu <relative_path_to_weights_and_biases.txt> <relative_path_to_input_tensor_directory>"
exit 1
fi

weights_and_biases=$1
input_tensor_dir=$2

binary="speed_gpu"

if [ ! -f "$binary" ]; then
echo "Binary $binary not found!"
exit 1
fi

start_time=$(date +%s)
./$binary "$weights_and_biases" "$input_tensor_dir"

end_time=$(date +%s)
execution_time=$((end_time - start_time))

if [ ! -f "results.csv" ]; then
echo "Error: results.csv not found!"
exit 1
else
echo "results.csv found!"
fi

echo "Execution time: $execution_time seconds"
233 changes: 233 additions & 0 deletions src/main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
int rows;
int cols;
float** data;
} matrix;

matrix* weight[7];
matrix* biase[7];

matrix* createMatrix(int rows, int cols) {
matrix* res = (matrix*)malloc(sizeof(matrix));
res->rows = rows;
res->cols = cols;
res->data = (float**)malloc(rows * sizeof(float*));
for (int i = 0; i < rows; i++) {
res->data[i] = (float*)malloc(cols * sizeof(float));
}
return res;
}

void multiplyMatrices(const matrix* a, const matrix* b, const matrix* result) {
for (int i = 0; i < result->rows; i++) {
for (int j = 0; j < result->cols; j++) {
float sum = 0;
for (int k = 0; k < a->cols; k++) {
sum += (a->data)[i][k] * ((b->data)[k][j]);
}
(result->data)[i][j] = sum;
}
}
}

void addMatrix(matrix* a, const matrix* b) {
for (int i = 0; i < a->rows; i++) {
for (int j = 0; j < a->cols; j++) {
(a->data)[i][j] += (b->data)[i][j];
}
}
}

void ReLU(matrix* a) {
for (int i = 0; i < a->rows; i++) {
for (int j = 0; j < a->cols; j++) {
if ((a->data)[i][j] < (float)0)
(a->data)[i][j] = (float)0;
}
}
}

void softmax(matrix* a) {
float res = (float)0;
for (int i = 0; i < a->rows; i++) {
for (int j = 0; j < a->cols; j++) {
res += exp((a->data)[i][j]);
}
}
for (int i = 0; i < a->rows; i++) {
for (int j = 0; j < a->cols; j++) {
(a->data)[i][j] /= res;
}
}
}

void processWeight(char* line, int layer) {
char* token;
float value;
const char* delimiter = ",";

token = strtok(line, delimiter);
for (int i = 0; i < weight[layer]->rows; i++) {
for (int j = 0; j < weight[layer]->cols; j++) {
value = strtof(token, NULL);
(weight[layer]->data)[i][j] = value;
token = strtok(NULL, delimiter);
}
}
}

void processBiase(char* line, int layer) {
char* token;
float value;
const char* delimiter = ",";

token = strtok(line, delimiter);

for (int i = 0; i < biase[layer]->rows; i++) {
value = strtof(token, NULL);
(biase[layer]->data)[i][0] = value;
token = strtok(NULL, delimiter);
}
}

void readModel() {
FILE* file = fopen("../weights_and_biases.txt", "r");

char* line = NULL;
size_t len = 0;
int line_number = 0;
int layer = 0;

while ((getline(&line, &len, file)) != -1) {
if ((line_number - 1) % 4 == 0) {
processWeight(line, layer);
} else if ((line_number - 3) % 4 == 0) {
processBiase(line, layer);
layer++;
}
line_number++;
}

free(line);
fclose(file);
}

void readInput(matrix* a, char* fileName) {
FILE* file = fopen(fileName, "r");

char* line = NULL;
size_t len = 0;
ssize_t read;
int line_number = 0;

getline(&line, &len, file);
char* token;
float value;
const char* delimiter = ",";
token = strtok(line, delimiter);
int size = 0;
for (int i = 0; i < 225; i++) {
value = strtof(token, NULL);
(a->data)[i][0] = value;
token = strtok(NULL, delimiter);
}
free(line);
fclose(file);
}

void propagateForward(const matrix* weight, const matrix* input, matrix* nextLayer, const matrix* biase) {
multiplyMatrices(weight, input, nextLayer);
addMatrix(nextLayer, biase);
}

int getResult(matrix* a) {
int idx = 0;
float res = INT32_MIN;
for (int i = 0; i < a->rows; i++) {
if (res < (a->data)[i][0]) {
res = (a->data)[i][0];
idx = i;
}
}
return idx;
}

int inference(matrix* input) {
matrix* layer[7];
layer[0] = createMatrix(98, 1);
layer[1] = createMatrix(65, 1);
layer[2] = createMatrix(50, 1);
layer[3] = createMatrix(30, 1);
layer[4] = createMatrix(25, 1);
layer[5] = createMatrix(40, 1);
layer[6] = createMatrix(52, 1);

propagateForward(weight[0], input, layer[0], biase[0]);
ReLU(layer[0]);
propagateForward(weight[1], layer[0], layer[1], biase[1]);
ReLU(layer[1]);
propagateForward(weight[2], layer[1], layer[2], biase[2]);
ReLU(layer[2]);
propagateForward(weight[3], layer[2], layer[3], biase[3]);
ReLU(layer[3]);
propagateForward(weight[4], layer[3], layer[4], biase[4]);
ReLU(layer[4]);
propagateForward(weight[5], layer[4], layer[5], biase[5]);
ReLU(layer[5]);

propagateForward(weight[6], layer[5], layer[6], biase[6]);
softmax(layer[6]);
return getResult(layer[6]);
}

int main() {

// Load model (The memory of those code should be initialize during compile time to enchance the speed)
weight[0] = createMatrix(98, 225);
weight[1] = createMatrix(65, 98);
weight[2] = createMatrix(50, 65);
weight[3] = createMatrix(30, 50);
weight[4] = createMatrix(25, 30);
weight[5] = createMatrix(40, 25);
weight[6] = createMatrix(52, 40);

biase[0] = createMatrix(98, 1);
biase[1] = createMatrix(65, 1);
biase[2] = createMatrix(50, 1);
biase[3] = createMatrix(30, 1);
biase[4] = createMatrix(25, 1);
biase[5] = createMatrix(40, 1);
biase[6] = createMatrix(52, 1);

readModel();

char str[10];
char fileName[100];
matrix* input = createMatrix(255, 1);

for (int i = 1; i <= 52; i++) {
if (i < 10) {
sprintf(str, "0%d", i);
} else {
sprintf(str, "%d", i);
}
strcpy(fileName, "../tensors/");
strcat(fileName, str);
strcat(fileName, "out.txt");

// Read txt file
readInput(input, fileName);

// Check result
if (inference(input) + 1 == i) {
printf("Test %d correct ✅\n", i);
} else {
printf("Test %d incorrect ❌\n", i);
}
}
}
1 change: 1 addition & 0 deletions tensors/01out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,10.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,172.0,197.0,7.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,47.0,216.0,213.0,74.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,144.0,141.0,109.0,174.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.0,217.0,49.0,25.0,223.0,30.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,88.0,191.0,0.0,0.0,168.0,118.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,183.0,209.0,146.0,146.0,196.0,209.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,229.0,125.0,123.0,123.0,121.0,230.0,62.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,135.0,176.0,0.0,0.0,0.0,0.0,153.0,164.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,209.0,80.0,0.0,0.0,0.0,0.0,61.0,230.0,18.0,0.0,0.0,0.0,0.0,0.0,2.0,43.0,5.0,0.0,0.0,0.0,0.0,4.0,59.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/02out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,47.0,105.0,92.0,20.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,85.0,228.0,144.0,167.0,204.0,20.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,80.0,70.0,0.0,19.0,228.0,54.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,26.0,146.0,186.0,187.0,240.0,51.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,189.0,149.0,43.0,17.0,214.0,53.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,213.0,91.0,13.0,97.0,251.0,61.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,83.0,208.0,193.0,133.0,164.0,159.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.0,17.0,0.0,2.0,15.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/03out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,7.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,199.0,205.0,204.0,205.0,193.0,78.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,214.0,40.0,39.0,42.0,111.0,236.0,30.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,94.0,192.0,0.0,0.0,0.0,1.0,229.0,57.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,204.0,39.0,39.0,41.0,115.0,195.0,15.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,87.0,243.0,202.0,202.0,205.0,239.0,110.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,197.0,7.0,7.0,8.0,43.0,223.0,74.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,194.0,0.0,0.0,0.0,0.0,176.0,139.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,95.0,199.0,0.0,0.0,0.0,30.0,228.0,101.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,61.0,236.0,195.0,194.0,196.0,219.0,169.0,12.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,41.0,58.0,58.0,58.0,38.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/04out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,122.0,126.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,141.0,146.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,139.0,141.0,65.0,132.0,98.0,9.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,132.0,218.0,169.0,122.0,196.0,173.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,135.0,213.0,6.0,0.0,16.0,227.0,58.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,139.0,145.0,0.0,0.0,0.0,188.0,101.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,139.0,153.0,0.0,0.0,0.0,194.0,94.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,134.0,230.0,25.0,0.0,44.0,232.0,40.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,127.0,197.0,186.0,166.0,219.0,126.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,17.0,36.0,88.0,52.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/05out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,16.0,26.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,21.0,158.0,218.0,216.0,209.0,104.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,195.0,186.0,49.0,24.0,82.0,242.0,101.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,229.0,14.0,0.0,0.0,0.0,99.0,127.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,167.0,155.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,190.0,124.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,178.0,141.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,120.0,208.0,0.0,0.0,0.0,0.0,70.0,151.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,27.0,233.0,127.0,6.0,0.0,28.0,217.0,143.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,62.0,215.0,209.0,188.0,222.0,166.0,11.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.0,70.0,89.0,51.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/06out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,31.0,119.0,129.0,53.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,40.0,220.0,151.0,129.0,227.0,75.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,158.0,157.0,0.0,0.0,92.0,99.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,202.0,83.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,200.0,88.0,0.0,0.0,0.0,6.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,142.0,176.0,0.0,0.0,121.0,140.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,24.0,197.0,184.0,167.0,218.0,58.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,74.0,86.0,27.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/07out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,7.0,7.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,199.0,209.0,209.0,205.0,162.0,41.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,220.0,47.0,46.0,61.0,152.0,230.0,40.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,198.0,0.0,0.0,0.0,0.0,172.0,167.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,200.0,0.0,0.0,0.0,0.0,77.0,223.0,8.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,200.0,0.0,0.0,0.0,0.0,54.0,231.0,18.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,200.0,0.0,0.0,0.0,0.0,71.0,225.0,10.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,199.0,0.0,0.0,0.0,0.0,151.0,183.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,95.0,205.0,3.0,3.0,13.0,97.0,244.0,64.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,61.0,239.0,206.0,205.0,215.0,215.0,88.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,41.0,57.0,58.0,47.0,10.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/08out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,13.0,191.0,31.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,14.0,220.0,38.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,124.0,120.0,44.0,212.0,37.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,46.0,225.0,149.0,130.0,188.0,227.0,35.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,163.0,151.0,0.0,0.0,73.0,245.0,34.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,203.0,80.0,0.0,0.0,15.0,217.0,37.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,199.0,86.0,0.0,0.0,19.0,223.0,36.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,143.0,176.0,0.0,0.0,106.0,251.0,34.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,26.0,204.0,185.0,169.0,180.0,214.0,33.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,14.0,79.0,78.0,11.0,31.0,4.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/09out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,7.0,7.0,7.0,7.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,199.0,210.0,210.0,210.0,210.0,127.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,218.0,49.0,47.0,47.0,48.0,26.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,94.0,195.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,203.0,27.0,27.0,27.0,25.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,87.0,246.0,211.0,211.0,212.0,201.0,29.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,202.0,19.0,19.0,20.0,17.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,196.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,95.0,202.0,3.0,3.0,3.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,61.0,238.0,206.0,204.0,204.0,205.0,144.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,41.0,57.0,58.0,58.0,57.0,38.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/10out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,32.0,118.0,126.0,46.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,41.0,211.0,130.0,117.0,213.0,64.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,158.0,133.0,0.0,0.0,101.0,188.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,197.0,203.0,183.0,183.0,195.0,192.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,196.0,103.0,36.0,37.0,32.0,20.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,139.0,162.0,0.0,0.0,82.0,154.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,22.0,192.0,177.0,156.0,219.0,82.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,72.0,88.0,33.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/11out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,7.0,7.0,7.0,7.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,38.0,200.0,210.0,210.0,210.0,210.0,169.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,220.0,49.0,47.0,47.0,48.0,36.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,94.0,198.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,206.0,27.0,27.0,27.0,26.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,87.0,246.0,211.0,211.0,211.0,207.0,43.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,92.0,205.0,19.0,19.0,20.0,18.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,93.0,199.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,94.0,202.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,88.0,192.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.0,30.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
1 change: 1 addition & 0 deletions tensors/12out.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,15.0,24.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,75.0,215.0,211.0,64.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,183.0,119.0,14.0,8.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.0,95.0,218.0,153.0,92.0,10.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,18.0,142.0,229.0,188.0,142.0,18.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,188.0,83.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,191.0,90.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,191.0,90.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,193.0,91.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,183.0,85.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,29.0,12.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0
Loading

0 comments on commit 4ec6297

Please sign in to comment.