Reputation: 667
I am working on a deep-learning course from udacity and there is this one line of code that I do not understand as what it does? and why?. Can anyone help me understand it? It will be great if anyone can share any document related to it.
dataset = dataset[0:num_images, :, :]
Source: link>load_letter method - https://github.com/rndbrtrnd/udacity-deep-learning/blob/master/1_notmnist.ipynb
Load_letter function:
def load_letter(folder, min_num_images):
image_files = os.listdir(folder)
dataset = np.ndarray(shape=(len(image_files), image_size, image_size),
dtype=np.float32)
image_index = 0
print(folder)
for image in os.listdir(folder):
image_file = os.path.join(folder, image)
try:
image_data = (ndimage.imread(image_file).astype(float) -
pixel_depth / 2) / pixel_depth
if image_data.shape != (image_size, image_size):
raise Exception('Unexpected image shape: %s' % str(image_data.shape))
dataset[image_index, :, :] = image_data
image_index += 1
except IOError as e:
print('Could not read:', image_file, ':', e, '- it\'s ok, skipping.')
num_images = image_index
dataset = dataset[0:num_images, :, :]
if num_images < min_num_images:
raise Exception('Many fewer images than expected: %d < %d' %
(num_images, min_num_images))
print('Full dataset tensor:', dataset.shape)
print('Mean:', np.mean(dataset))
print('Standard deviation:', np.std(dataset))
return dataset
Upvotes: 2
Views: 276
Reputation: 811
What you have in dataset is a tensor (or a multidimensional array). In your case it has 3 dimensions.
dataset[0:num_images, :, :]
What you are doing in the first dimension is selecting a set of images from 0 to num_images, and then the ':' are saying to keep the rest of information.
So its just a tensor filtering on the first dimension while keeping the rest the same.
Upvotes: 1