Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (*Initialize random number sequence *)
- Random.self_init();;
- (* Generate a random number between -0.5 and 0.5 *)
- let get_neg_rand ()=
- Random.float (-0.5)
- ;;
- let get_pos_rand ()=
- Random.float (0.5)
- ;;
- let get_rand() =
- let x = Random.int 2 in
- if x = 1 then get_neg_rand() else get_pos_rand();
- ;;
- (* Print a line *)
- Printf.printf "------------------------------------------------------\n";;
- (* gets # of rows *)
- let length (trainData) =
- List.length trainData
- ;;
- (* gets first row *)
- let head (trainData) =
- List.hd trainData
- ;;
- (*gets last row *)
- let tail (trainData) =
- List.tl trainData
- ;;
- (* gets # of columns *)
- let head_length (trainData) =
- List.length(List.hd trainData)
- ;;
- (* gets row # n *)
- let nth (trainData) n =
- List.nth trainData n
- ;;
- (*initialize a new list *)
- let create_winit(trainData) =
- let rec loop w_initial = function 1 -> w_initial | x -> loop (get_rand() :: w_initial) (x - 1) in loop [] (head_length(trainData))
- ;;
- (* this will be inner.caml *)
- let rec inner (inputs, weights) =
- if inputs==[] && weights == [] then 0.0
- else
- List.hd(inputs) *. List.hd(weights) +. inner(List.tl(inputs),List.tl(weights))
- ;;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement