Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. /**
  2. * @desc creates array of input data for every sample
  3. * @param json data - complete json that contains wine quality data
  4. * @return array of input data
  5. */
  6. function extractInputs(data)
  7. {
  8. let inputs = []
  9. inputs = data.map(d => [d.fixed_acidity, d.volatile_acidity, d.citric_acid, d.residual_sugar, d.chlorides, d.free_sulfur_dioxide, d.total_sulfur_dioxide, d.density, d.pH, d.sulphates, d.alcohol])
  10. return inputs;
  11. }
  12.  
  13. /**
  14. * @desc converts data from json format to tensors
  15. * @param json data - complete json that contains wine quality data
  16. * @return tuple of converted data that can be used for training model
  17. */
  18. function prepareDataFunction(data) {
  19.  
  20. return tf.tidy(() => {
  21. tf.util.shuffle(data);
  22.  
  23. const inputs = extractInputs(data);
  24. const outputs = data.map(d => d.quality);
  25.  
  26. const inputTensor = tf.tensor2d(inputs, [inputs.length, inputs[0].length]);
  27. const outputTensor = tf.oneHot(tf.tensor1d(outputs, 'int32'), 10);
  28.  
  29. const inputMax = inputTensor.max();
  30. const inputMin = inputTensor.min();
  31. const outputMax = outputTensor.max();
  32. const outputMin = outputTensor.min();
  33.  
  34. const normalizedInputs = inputTensor.sub(inputMin).div(inputMax.sub(inputMin));
  35. const normalizedoutputs = outputTensor.sub(outputMin).div(outputMax.sub(outputMin));
  36.  
  37. return {
  38. inputs: normalizedInputs,
  39. outputs: normalizedoutputs,
  40. inputMax,
  41. inputMin,
  42. outputMax,
  43. outputMin,
  44. }
  45. });
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement