Python utils.batch_generator() Examples
The following are 6
code examples of utils.batch_generator().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
utils
, or try the search function
.
Example #1
Source File: tf_models.py From Deep-Learning-with-TensorFlow-Second-Edition with MIT License | 6 votes |
def _stochastic_gradient_descent(self, _data): """ Performs stochastic gradient descend optimization algorithm. :param _data: array-like, shape = (n_samples, n_features) :return: """ for iteration in range(1, self.n_epochs + 1): idx = np.random.permutation(len(_data)) data = _data[idx] for batch in batch_generator(self.batch_size, data): if len(batch) < self.batch_size: # Pad with zeros pad = np.zeros((self.batch_size - batch.shape[0], batch.shape[1]), dtype=batch.dtype) batch = np.vstack((batch, pad)) sess.run(tf.variables_initializer(self.random_variables)) # Need to re-sample from uniform distribution sess.run([self.update_W, self.update_b, self.update_c], feed_dict={self.visible_units_placeholder: batch}) if self.verbose: error = self._compute_reconstruction_error(data) print(">> Epoch %d finished \tRBM Reconstruction error %f" % (iteration, error))
Example #2
Source File: model.py From car-behavioral-cloning with MIT License | 6 votes |
def train_model(model, args, X_train, X_valid, y_train, y_valid): """ Train the model """ checkpoint = ModelCheckpoint('model-{epoch:03d}.h5', monitor='val_loss', verbose=0, save_best_only=args.save_best_only, mode='auto') model.compile(loss='mean_squared_error', optimizer=Adam(lr=args.learning_rate)) model.fit_generator(batch_generator(args.data_dir, X_train, y_train, args.batch_size, True), args.samples_per_epoch, args.nb_epoch, max_q_size=1, validation_data=batch_generator(args.data_dir, X_valid, y_valid, args.batch_size, False), nb_val_samples=len(X_valid), callbacks=[checkpoint], verbose=1)
Example #3
Source File: tf_models.py From Deep-Learning-with-TensorFlow-Second-Edition with MIT License | 5 votes |
def _stochastic_gradient_descent(self, data, labels): for iteration in range(self.n_iter_backprop): for batch_data, batch_labels in batch_generator(self.batch_size, data, labels): feed_dict = {self.visible_units_placeholder: batch_data, self.y_: batch_labels} feed_dict.update({placeholder: self.p for placeholder in self.keep_prob_placeholders}) sess.run(self.train_step, feed_dict=feed_dict) if self.verbose: feed_dict = {self.visible_units_placeholder: data, self.y_: labels} feed_dict.update({placeholder: 1.0 for placeholder in self.keep_prob_placeholders}) error = sess.run(self.cost_function, feed_dict=feed_dict) print(">> Epoch %d finished \tANN training loss %f" % (iteration, error))
Example #4
Source File: base_models.py From Deep-Learning-with-TensorFlow-Second-Edition with MIT License | 5 votes |
def _stochastic_gradient_descent(self, _data): """ Performs stochastic gradient descend optimization algorithm. :param _data: array-like, shape = (n_samples, n_features) :return: """ accum_delta_W = np.zeros(self.W.shape) accum_delta_b = np.zeros(self.b.shape) accum_delta_c = np.zeros(self.c.shape) for iteration in range(1, self.n_epochs + 1): idx = np.random.permutation(len(_data)) data = _data[idx] for batch in batch_generator(self.batch_size, data): accum_delta_W[:] = .0 accum_delta_b[:] = .0 accum_delta_c[:] = .0 for sample in batch: delta_W, delta_b, delta_c = self._contrastive_divergence(sample) accum_delta_W += delta_W accum_delta_b += delta_b accum_delta_c += delta_c self.W += self.learning_rate * (accum_delta_W / self.batch_size) self.b += self.learning_rate * (accum_delta_b / self.batch_size) self.c += self.learning_rate * (accum_delta_c / self.batch_size) if self.verbose: error = self._compute_reconstruction_error(data) print(">> Epoch %d finished \tRBM Reconstruction error %f" % (iteration, error))
Example #5
Source File: base_models.py From Deep-Learning-with-TensorFlow-Second-Edition with MIT License | 4 votes |
def _stochastic_gradient_descent(self, _data, _labels): """ Performs stochastic gradient descend optimization algorithm. :param _data: array-like, shape = (n_samples, n_features) :param _labels: array-like, shape = (n_samples, targets) :return: """ if self.verbose: matrix_error = np.zeros([len(_data), self.num_classes]) num_samples = len(_data) accum_delta_W = [np.zeros(rbm.W.shape) for rbm in self.unsupervised_dbn.rbm_layers] accum_delta_W.append(np.zeros(self.W.shape)) accum_delta_bias = [np.zeros(rbm.c.shape) for rbm in self.unsupervised_dbn.rbm_layers] accum_delta_bias.append(np.zeros(self.b.shape)) for iteration in range(1, self.n_iter_backprop + 1): idx = np.random.permutation(len(_data)) data = _data[idx] labels = _labels[idx] i = 0 for batch_data, batch_labels in batch_generator(self.batch_size, data, labels): # Clear arrays for arr1, arr2 in zip(accum_delta_W, accum_delta_bias): arr1[:], arr2[:] = .0, .0 for sample, label in zip(batch_data, batch_labels): delta_W, delta_bias, predicted = self._backpropagation(sample, label) for layer in range(len(self.unsupervised_dbn.rbm_layers) + 1): accum_delta_W[layer] += delta_W[layer] accum_delta_bias[layer] += delta_bias[layer] if self.verbose: loss = self._compute_loss(predicted, label) matrix_error[i, :] = loss i += 1 layer = 0 for rbm in self.unsupervised_dbn.rbm_layers: # Updating parameters of hidden layers rbm.W = (1 - ( self.learning_rate * self.l2_regularization) / num_samples) * rbm.W - self.learning_rate * ( accum_delta_W[layer] / self.batch_size) rbm.c -= self.learning_rate * (accum_delta_bias[layer] / self.batch_size) layer += 1 # Updating parameters of output layer self.W = (1 - ( self.learning_rate * self.l2_regularization) / num_samples) * self.W - self.learning_rate * ( accum_delta_W[layer] / self.batch_size) self.b -= self.learning_rate * (accum_delta_bias[layer] / self.batch_size) if self.verbose: error = np.mean(np.sum(matrix_error, 1)) print(">> Epoch %d finished \tANN training loss %f" % (iteration, error))
Example #6
Source File: tf_attention.py From Sarcasm-Detection with MIT License | 4 votes |
def build_attention_model(): # Different placeholders with tf.name_scope('Inputs'): batch_ph = tf.placeholder(tf.int32, [None, SEQUENCE_LENGTH], name='batch_ph') target_ph = tf.placeholder(tf.float32, [None], name='target_ph') seq_len_ph = tf.placeholder(tf.int32, [None], name='seq_len_ph') keep_prob_ph = tf.placeholder(tf.float32, name='keep_prob_ph') # Embedding layer with tf.name_scope('Embedding_layer'): embeddings_var = tf.Variable(tf.random_uniform([vocabulary_size, EMBEDDING_DIM], -1.0, 1.0), trainable=True) tf.summary.histogram('embeddings_var', embeddings_var) batch_embedded = tf.nn.embedding_lookup(embeddings_var, batch_ph) # (Bi-)RNN layer(-s) rnn_outputs, _ = bi_rnn(GRUCell(HIDDEN_UNITS), GRUCell(HIDDEN_UNITS), inputs=batch_embedded, sequence_length=seq_len_ph, dtype=tf.float32) tf.summary.histogram('RNN_outputs', rnn_outputs) # Attention layer with tf.name_scope('Attention_layer'): attention_output, alphas = attention(rnn_outputs, ATTENTION_UNITS, return_alphas=True) tf.summary.histogram('alphas', alphas) # Dropout drop = tf.nn.dropout(attention_output, keep_prob_ph) # Fully connected layer with tf.name_scope('Fully_connected_layer'): W = tf.Variable( tf.truncated_normal([HIDDEN_UNITS * 2, 1], stddev=0.1)) # Hidden size is multiplied by 2 for Bi-RNN b = tf.Variable(tf.constant(0., shape=[1])) y_hat = tf.nn.xw_plus_b(drop, W, b) y_hat = tf.squeeze(y_hat) tf.summary.histogram('W', W) with tf.name_scope('Metrics'): # Cross-entropy loss and optimizer initialization loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=y_hat, labels=target_ph)) tf.summary.scalar('loss', loss) optimizer = tf.train.AdamOptimizer(learning_rate=1e-3).minimize(loss) # Accuracy metric accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.round(tf.sigmoid(y_hat)), target_ph), tf.float32)) tf.summary.scalar('accuracy', accuracy) merged = tf.summary.merge_all() # Batch generators train_batch_generator = batch_generator(X_train, y_train, BATCH_SIZE) test_batch_generator = batch_generator(X_test, y_test, BATCH_SIZE) session_conf = tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True)) saver = tf.train.Saver() return batch_ph, target_ph, seq_len_ph, keep_prob_ph, alphas, loss, accuracy, optimizer, merged, \ train_batch_generator, test_batch_generator, session_conf, saver