Python tensorflow.softmax_cross_entropy_with_logits() Examples
The following are 7
code examples of tensorflow.softmax_cross_entropy_with_logits().
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
tensorflow
, or try the search function
.
Example #1
Source File: training.py From seg-mentor with MIT License | 6 votes |
def get_goodpixel_logits_and_1hot_labels(labels_numeric_3d, logits_4d, num_classes): """ Returns two tensors of size (num_valid_entries, num_classes). The function converts annotation batch tensor input of the size (batch_size, height, width) into label tensor (batch_size, height, width, num_classes) and then selects only valid entries, resulting in tensor of the size (num_valid_entries, num_classes). The function also returns the tensor with corresponding valid entries in the logits tensor. Overall, two tensors of the same sizes are returned and later on can be used as an input into tf.softmax_cross_entropy_with_logits() to get the cross entropy error for each entry. """ binary_masks_by_class = [tf.equal(labels_numeric_3d, x) for x in range(num_classes)] labels_one_hot_4d_f = tf.to_float(tf.stack(binary_masks_by_class, axis=-1)) # Find unmasked pixels good for evaluation: # (gives a 2D tensor, flat list of index triples - spacial and batch dimensions are lost here) valid_pixel_coord_vectors = tf.where(labels_numeric_3d < num_classes) # Select a flat list of the values (which are actually 1-hot vectors) for al valid pixels, giving 2D tensor goodpixels_labels_one_hot_2d_f = tf.gather_nd(params=labels_one_hot_4d_f, indices=valid_pixel_coord_vectors) goodpixels_logits_2d = tf.gather_nd(params=logits_4d, indices=valid_pixel_coord_vectors) return goodpixels_labels_one_hot_2d_f, goodpixels_logits_2d
Example #2
Source File: training.py From CVTron with Apache License 2.0 | 5 votes |
def get_valid_logits_and_labels(annotation_batch_tensor, logits_batch_tensor, class_labels): """Returns two tensors of size (num_valid_entries, num_classes). The function converts annotation batch tensor input of the size (batch_size, height, width) into label tensor (batch_size, height, width, num_classes) and then selects only valid entries, resulting in tensor of the size (num_valid_entries, num_classes). The function also returns the tensor with corresponding valid entries in the logits tensor. Overall, two tensors of the same sizes are returned and later on can be used as an input into tf.softmax_cross_entropy_with_logits() to get the cross entropy error for each entry. Parameters ---------- annotation_batch_tensor : Tensor of size (batch_size, width, height) Tensor with class labels for each batch logits_batch_tensor : Tensor of size (batch_size, width, height, num_classes) Tensor with logits. Usually can be achived after inference of fcn network. class_labels : list of ints List that contains the numbers that represent classes. Last value in the list should represent the number that was used for masking out. Returns ------- (valid_labels_batch_tensor, valid_logits_batch_tensor) : Two Tensors of size (num_valid_eintries, num_classes). Tensors that represent valid labels and logits. """ labels_batch_tensor = get_labels_from_annotation_batch(annotation_batch_tensor=annotation_batch_tensor, class_labels=class_labels) valid_batch_indices = get_valid_entries_indices_from_annotation_batch(annotation_batch_tensor=annotation_batch_tensor, class_labels=class_labels) valid_labels_batch_tensor = tf.gather_nd(params=labels_batch_tensor, indices=valid_batch_indices) valid_logits_batch_tensor = tf.gather_nd(params=logits_batch_tensor, indices=valid_batch_indices) return valid_labels_batch_tensor, valid_logits_batch_tensor
Example #3
Source File: training.py From CVTron with Apache License 2.0 | 4 votes |
def get_labels_from_annotation(annotation_tensor, class_labels): """Returns tensor of size (width, height, num_classes) derived from annotation tensor. The function returns tensor that is of a size (width, height, num_classes) which is derived from annotation tensor with sizes (width, height) where value at each position represents a class. The functions requires a list with class values like [0, 1, 2 ,3] -- they are used to derive labels. Derived values will be ordered in the same way as the class numbers were provided in the list. Last value in the aforementioned list represents a value that indicate that the pixel should be masked out. So, the size of num_classes := len(class_labels) - 1. Parameters ---------- annotation_tensor : Tensor of size (width, height) Tensor with class labels for each element class_labels : list of ints List that contains the numbers that represent classes. Last value in the list should represent the number that was used for masking out. Returns ------- labels_2d_stacked : Tensor of size (width, height, num_classes). Tensor with labels for each pixel. """ # Last value in the classes list should show # which number was used in the annotation to mask out # the ambigious regions or regions that should not be # used for training. # TODO: probably replace class_labels list with some custom object valid_entries_class_labels = class_labels[:-1] # Stack the binary masks for each class labels_2d = list(map(lambda x: tf.equal(annotation_tensor, x), valid_entries_class_labels)) # Perform the merging of all of the binary masks into one matrix labels_2d_stacked = tf.stack(labels_2d, axis=2) # Convert tf.bool to tf.float # Later on in the labels and logits will be used # in tf.softmax_cross_entropy_with_logits() function # where they have to be of the float type. labels_2d_stacked_float = tf.to_float(labels_2d_stacked) return labels_2d_stacked_float
Example #4
Source File: alexnet.py From imagenet with MIT License | 4 votes |
def classifier(x, dropout): """ AlexNet fully connected layers definition Args: x: tensor of shape [batch_size, width, height, channels] dropout: probability of non dropping out units Returns: fc3: 1000 linear tensor taken just before applying the softmax operation it is needed to feed it to tf.softmax_cross_entropy_with_logits() softmax: 1000 linear tensor representing the output probabilities of the image to classify """ pool5 = cnn(x) dim = pool5.get_shape().as_list() flat_dim = dim[1] * dim[2] * dim[3] # 6 * 6 * 256 flat = tf.reshape(pool5, [-1, flat_dim]) with tf.name_scope('alexnet_classifier') as scope: with tf.name_scope('alexnet_classifier_fc1') as inner_scope: wfc1 = tu.weight([flat_dim, 4096], name='wfc1') bfc1 = tu.bias(0.0, [4096], name='bfc1') fc1 = tf.add(tf.matmul(flat, wfc1), bfc1) #fc1 = tu.batch_norm(fc1) fc1 = tu.relu(fc1) fc1 = tf.nn.dropout(fc1, dropout) with tf.name_scope('alexnet_classifier_fc2') as inner_scope: wfc2 = tu.weight([4096, 4096], name='wfc2') bfc2 = tu.bias(0.0, [4096], name='bfc2') fc2 = tf.add(tf.matmul(fc1, wfc2), bfc2) #fc2 = tu.batch_norm(fc2) fc2 = tu.relu(fc2) fc2 = tf.nn.dropout(fc2, dropout) with tf.name_scope('alexnet_classifier_output') as inner_scope: wfc3 = tu.weight([4096, 1000], name='wfc3') bfc3 = tu.bias(0.0, [1000], name='bfc3') fc3 = tf.add(tf.matmul(fc2, wfc3), bfc3) softmax = tf.nn.softmax(fc3) return fc3, softmax
Example #5
Source File: alexnet.py From alexnet with MIT License | 4 votes |
def classifier(x, dropout): """ AlexNet fully connected layers definition Args: x: tensor of shape [batch_size, width, height, channels] dropout: probability of non dropping out units Returns: fc3: 1000 linear tensor taken just before applying the softmax operation it is needed to feed it to tf.softmax_cross_entropy_with_logits() softmax: 1000 linear tensor representing the output probabilities of the image to classify """ pool5 = alexnet(x) dim = pool5.get_shape().as_list() flat_dim = dim[1] * dim[2] * dim[3] # 6 * 6 * 256 flat = tf.reshape(pool5, [-1, flat_dim]) with tf.name_scope('classifier') as scope: with tf.name_scope('fullyconected1') as inner_scope: wfc1 = tu.weight([flat_dim, 4096], name='wfc1') bfc1 = tu.bias(0.0, [4096], name='bfc1') fc1 = tf.add(tf.matmul(flat, wfc1), bfc1) #fc1 = tu.batch_norm(fc1) fc1 = tu.relu(fc1) fc1 = tf.nn.dropout(fc1, dropout) with tf.name_scope('fullyconected2') as inner_scope: wfc2 = tu.weight([4096, 4096], name='wfc2') bfc2 = tu.bias(0.0, [4096], name='bfc2') fc2 = tf.add(tf.matmul(fc1, wfc2), bfc2) #fc2 = tu.batch_norm(fc2) fc2 = tu.relu(fc2) fc2 = tf.nn.dropout(fc2, dropout) with tf.name_scope('classifier_output') as inner_scope: wfc3 = tu.weight([4096, 1000], name='wfc3') bfc3 = tu.bias(0.0, [1000], name='bfc3') fc3 = tf.add(tf.matmul(fc2, wfc3), bfc3) softmax = tf.nn.softmax(fc3) return fc3, softmax
Example #6
Source File: training.py From tf-image-segmentation with MIT License | 4 votes |
def get_labels_from_annotation(annotation_tensor, class_labels): """Returns tensor of size (width, height, num_classes) derived from annotation tensor. The function returns tensor that is of a size (width, height, num_classes) which is derived from annotation tensor with sizes (width, height) where value at each position represents a class. The functions requires a list with class values like [0, 1, 2 ,3] -- they are used to derive labels. Derived values will be ordered in the same way as the class numbers were provided in the list. Last value in the aforementioned list represents a value that indicate that the pixel should be masked out. So, the size of num_classes := len(class_labels) - 1. Parameters ---------- annotation_tensor : Tensor of size (width, height) Tensor with class labels for each element class_labels : list of ints List that contains the numbers that represent classes. Last value in the list should represent the number that was used for masking out. Returns ------- labels_2d_stacked : Tensor of size (width, height, num_classes). Tensor with labels for each pixel. """ # Last value in the classes list should show # which number was used in the annotation to mask out # the ambigious regions or regions that should not be # used for training. # TODO: probably replace class_labels list with some custom object valid_entries_class_labels = class_labels[:-1] # Stack the binary masks for each class labels_2d = map(lambda x: tf.equal(annotation_tensor, x), valid_entries_class_labels) # Perform the merging of all of the binary masks into one matrix labels_2d_stacked = tf.stack(labels_2d, axis=2) # Convert tf.bool to tf.float # Later on in the labels and logits will be used # in tf.softmax_cross_entropy_with_logits() function # where they have to be of the float type. labels_2d_stacked_float = tf.to_float(labels_2d_stacked) return labels_2d_stacked_float
Example #7
Source File: training.py From tf-image-segmentation with MIT License | 4 votes |
def get_valid_logits_and_labels(annotation_batch_tensor, logits_batch_tensor, class_labels): """Returns two tensors of size (num_valid_entries, num_classes). The function converts annotation batch tensor input of the size (batch_size, height, width) into label tensor (batch_size, height, width, num_classes) and then selects only valid entries, resulting in tensor of the size (num_valid_entries, num_classes). The function also returns the tensor with corresponding valid entries in the logits tensor. Overall, two tensors of the same sizes are returned and later on can be used as an input into tf.softmax_cross_entropy_with_logits() to get the cross entropy error for each entry. Parameters ---------- annotation_batch_tensor : Tensor of size (batch_size, width, height) Tensor with class labels for each batch logits_batch_tensor : Tensor of size (batch_size, width, height, num_classes) Tensor with logits. Usually can be achived after inference of fcn network. class_labels : list of ints List that contains the numbers that represent classes. Last value in the list should represent the number that was used for masking out. Returns ------- (valid_labels_batch_tensor, valid_logits_batch_tensor) : Two Tensors of size (num_valid_eintries, num_classes). Tensors that represent valid labels and logits. """ labels_batch_tensor = get_labels_from_annotation_batch(annotation_batch_tensor=annotation_batch_tensor, class_labels=class_labels) valid_batch_indices = get_valid_entries_indices_from_annotation_batch(annotation_batch_tensor=annotation_batch_tensor, class_labels=class_labels) valid_labels_batch_tensor = tf.gather_nd(params=labels_batch_tensor, indices=valid_batch_indices) valid_logits_batch_tensor = tf.gather_nd(params=logits_batch_tensor, indices=valid_batch_indices) return valid_labels_batch_tensor, valid_logits_batch_tensor