From 21d886dd096faf552d04e7bfab66cd23e86bc9b8 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 30 Jan 2013 14:03:46 -0800 Subject: [PATCH] Revert "Use myReshape instead of reshape or lapply to create the batches. (faster than original, but slower than lapply)" This reverts commit 19c5e5849b88a6c553bb16923add96ad8b814a72. --- Neural Net Language Model/LoadData.R | 12 ++++++++++-- Neural Net Language Model/Train.R | 16 ++++++++-------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Neural Net Language Model/LoadData.R b/Neural Net Language Model/LoadData.R index e178d7d..959aa3d 100644 --- a/Neural Net Language Model/LoadData.R +++ b/Neural Net Language Model/LoadData.R @@ -33,8 +33,16 @@ load_data <- function(N) { # shift to an list of M minibatches, each with D*N # looks like we threw out the remainder training data - train_input <- myReshape(data$trainData[1:D, 1:(N*M), drop=F], D, N, M) - train_target <- myReshape(data$trainData[D + 1, 1:(N*M), drop=F], 1, N, M) + start <- seq.int(1, N*M, by=1000) + end <- seq.int(1000, N*M, by=1000) + train_input <- mapply(function(x, start, end) x[,start:end], + start=seq.int(1, N*M, by=1000), + end=seq.int(1000, N*M, by=1000), + MoreArgs=list(x=data$trainData[1:D, 1:(N*M)]), SIMPLIFY=F) + train_target <- mapply(function(x, start, end) x[,start:end], + start=seq.int(1, N*M, by=1000), + end=seq.int(1000, N*M, by=1000), + MoreArgs=list(x=data$trainData[D + 1, 1:(N*M), drop=F]), SIMPLIFY=F) valid_input <- data$validData[1:D,, drop=F] valid_target <- data$validData[D + 1, , drop=F] test_input <- data$validData[1:D, , drop=F] diff --git a/Neural Net Language Model/Train.R b/Neural Net Language Model/Train.R index 8da6217..a002c9e 100644 --- a/Neural Net Language Model/Train.R +++ b/Neural Net Language Model/Train.R @@ -38,11 +38,11 @@ train <- function(epochs) { # % LOAD DATA. data <- load_data(batchsize) - tmp <- size(data$train_input) + tmp <- size(data$train_input[[1]]) numwords <- tmp[1] #batchsize <- tmp[2] - numbatches <- tmp[3] - #numbatches <- length(data$train_input) + #numbatches <- tmp[3] + numbatches <- length(data$train_input) vocab_size <- size(data$vocab, 2) word_embedding_weights = init_wt * randn(vocab_size, numhid1); @@ -75,14 +75,14 @@ train <- function(epochs) { #while(hasNext(inputIT) & hasNext(targetIT)) { - input_batch <- data$train_input[,,m] - target_batch <- data$train_target[,,m] + #input_batch <- data$train_input[,,m] + #target_batch <- data$train_target[,,m] #input_batch <- nextElem(inputIT) #target_batch <- nextElem(targetIT) - #input_batch <- data$train_input[[m]] - #target_batch <- data$train_target[[m]] + input_batch <- data$train_input[[m]] + target_batch <- data$train_target[[m]] - #dim(target_batch) <- NULL + dim(target_batch) <- NULL # % FORWARD PROPAGATE. # % Compute the state of each layer in the network given the input batch and all weights and biases