Comments (4)
Can you please provide some data and code for comparison?
(There is a bigger difference between the internal and textual representation of values in Python I guess.)
from sklearn-porter.
ok I will provide detail example/data tomorrow.
from sklearn-porter.
attaching zip file contains
- C program trained for 10000 records with accepting feature float data type
- C program trained for 10000 records with accepting feature double data type
- Shell script used to calculate the matched records of target binary of above programs
- Test data set file
- Expected prediction data file
porter_attachments.zip - csv file used for training (First column as Target class, and rest of the column as test data set)
train_10000.zip
test script output at my end
./test_prediction.sh ./train_10000 ./train_10000_target ./porter_train_10000_double
test data file - test_data/train_10000
expected prediction data file - test_data/train_10000_target
testing output binray by feeding training data .......
Total records - 10000
Matched prediction records - 9878
./test_prediction.sh ./train_10000 ./train_10000_target ./porter_train_10000 _float
test data file - test_data/train_10000
expected prediction data file - test_data/train_10000_target
testing output binray by feeding training data .......
Total records - 10000
Matched prediction records - 9992
from sklearn-porter.
Okay, thanks. Can you please validate the data type of your training data?
print(type(X[0])) # <type 'numpy.float32'> or <type 'numpy.float64'>
For load_digits it's numpy.float64
which is double
in C. The integrity check finished without mismatches. So I changed the data to floats with X.astype(np.float32)
and finished the integrity check again without errors.
Nevertheless it depends on the data. In general I see the problem of point precisions between data types and programming languages. It could make sense to add a possibility to change the features data type in transpiled output by using a new argument temp_dtype='float'
.
Further atof()
converts a string to double
in C. On the other hand if you want to use floats, you should use strtof()
to convert strings to float
.
Can you test it?
from sklearn-porter.
Related Issues (20)
- (SVC export) N_vector size of the exported C is not the same with the size of training sample
- Feature Request: translator for onehot encoder
- Feature Request: Multinomial Logistic Regression
- A bug : When the version of sklearn contains character sequences like "rc1, rc2", the Porter class cannot be created. HOT 1
- RandomForestClassifier export HOT 1
- decision tree C code exported by porter have zero integrity score with custom test_data. HOT 1
- Test code, which is part of the Readme is failing HOT 2
- [Query] Is the isolation forest model for outlier detection supported now? HOT 1
- ValueError: invalid literal for int() with base 10: 'post1' on Example from Readme HOT 2
- What does embed_data do?
- [Enhancement]Background concurrent copying GC freed for sklearn model constrcutor in Java HOT 2
- [Error] Works fine with C but getting this error when ported to Java
- OSError: Windows isn't supported yet HOT 3
- Unable to check integrity score. HOT 1
- Generating probabilities instead of categorical results
- scikit-learn-0.24.1: ModuleNotFoundError: No module named 'sklearn.tree.tree' HOT 5
- Is there any plan to support RandomForestRegressor? HOT 11
- ImportError: cannot import name 'Porter' HOT 2
- Can't use port or save functions HOT 3
- ModuleNotFoundError: No module named 'sklearn_porter' HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sklearn-porter.