Advertisement
Guest User

Untitled

a guest
Mar 16th, 2010
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 1.18 KB | None | 0 0
  1. (*Initialize random number sequence *)
  2. Random.self_init();;
  3.  
  4. (* Generate a random number between -0.5 and 0.5 *)
  5. let get_neg_rand ()=
  6.     Random.float (-0.5)
  7. ;;
  8.  
  9. let get_pos_rand ()=
  10.     Random.float (0.5)
  11. ;;
  12.  
  13. let get_rand() =
  14.     let x = Random.int 2 in
  15.     if x = 1 then get_neg_rand() else get_pos_rand();
  16. ;;
  17.  
  18. (* Print a line *)
  19. Printf.printf "------------------------------------------------------\n";;
  20.  
  21. (* gets # of rows *)
  22. let length (trainData) =
  23.     List.length trainData
  24. ;;
  25.  
  26. (* gets first row *)
  27. let head (trainData) =
  28.     List.hd trainData
  29. ;;
  30.  
  31. (*gets last row *)
  32. let tail (trainData) =
  33.     List.tl trainData
  34. ;;
  35.  
  36. (* gets # of columns *)
  37. let head_length (trainData) =
  38.     List.length(List.hd trainData)
  39. ;;
  40.  
  41. (* gets row # n *)
  42. let nth (trainData) n =
  43.     List.nth trainData n
  44. ;;
  45.  
  46. (*initialize a new list *)
  47.  let create_winit(trainData) =
  48.     let rec loop w_initial = function 1 -> w_initial | x -> loop (get_rand() :: w_initial) (x - 1) in loop [] (head_length(trainData))
  49. ;;
  50.  
  51. (* this will be inner.caml *)
  52. let rec inner (inputs, weights) =
  53. if inputs==[] && weights == [] then 0.0
  54.     else
  55.         List.hd(inputs) *. List.hd(weights) +. inner(List.tl(inputs),List.tl(weights))
  56. ;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement