Giter Site home page Giter Site logo

Comments (4)

nok avatar nok commented on May 31, 2024

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.

vijaykilledar avatar vijaykilledar commented on May 31, 2024

ok I will provide detail example/data tomorrow.

from sklearn-porter.

vijaykilledar avatar vijaykilledar commented on May 31, 2024

attaching zip file contains

  1. C program trained for 10000 records with accepting feature float data type
  2. C program trained for 10000 records with accepting feature double data type
  3. Shell script used to calculate the matched records of target binary of above programs
  4. Test data set file
  5. Expected prediction data file
    porter_attachments.zip
  6. 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.

nok avatar nok commented on May 31, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.