pylissom.utils

Submodules

pylissom.utils.helpers module

pylissom.utils.helpers.save_model(model, optimizer=None, fname='best_model.pth.tar')[source]
pylissom.utils.helpers.load_model(fname='model.pth.tar')[source]
pylissom.utils.helpers.debug()[source]

Calls a debugger that works with jupyter notebooks

class pylissom.utils.helpers.TimeIt[source]

Bases: object

At instantiation starts a timer and prints value when end() is called

end()[source]

pylissom.utils.orientation_maps module

Provides some helpers to calculate Orientation Preferences of a Lissom Network

class pylissom.utils.orientation_maps.OrientationMap(model, inputs, use_tqdm_notebook=True)[source]

Bases: object

maximum_activations(model, inputs)[source]
calculate_keys_activations(model, inputs)[source]
get_orientation_map[source]
static orientation_hist(orientation_map)[source]
get_orientation_hist[source]
pylissom.utils.orientation_maps.plot_orientation_map(orientation_map)[source]
pylissom.utils.orientation_maps.plot_orientation_hist(orientation_hist)[source]
pylissom.utils.orientation_maps.metrics_orientation_hist(orientation_hist)[source]
pylissom.utils.orientation_maps.get_oriented_lines(size, orientations=180)[source]
pylissom.utils.orientation_maps.numpy_dict_to_tensors(d)[source]

pylissom.utils.stimuli module

Provides several functions that create and manipulate matrices representing different stimuli, mainly guassians disks TODO: only use cv2 or scikit-image, not both

pylissom.utils.stimuli.translate(bar, step=1, over_x=True)[source]
pylissom.utils.stimuli.random_translation(img, x_offset=5, y_offset=5)[source]
pylissom.utils.stimuli.generate_horizontal_bar(size)[source]
pylissom.utils.stimuli.generate_gaussian(shape, mu_x=0.0, mu_y=0.0, sigma_x=1.0, sigma_y=None)[source]
pylissom.utils.stimuli.rotations(img, num=13)[source]

Returns: Returns a dictionary of len 180 / num, representing {rotation_degrees: rotated_img}

pylissom.utils.stimuli.gaussian_generator(size, mu_x, mu_y, sigma_x, sigma_y, orientation)[source]
Parameters:orientation – It’s actually redundant because orientation is a function of the sigmas, but make it easier to use

Returns: A numpy matrix representing a gaussian of shape = (size, size)

pylissom.utils.stimuli.generate_random_gaussian(size)[source]

Returns: A numpy matrix with a random gaussian of shape = (size, size)

pylissom.utils.stimuli.random_gaussians_generator(size, gaussians=1)[source]
Parameters:
  • size – img will have shape = (size, size)
  • gaussians – How many gaussians per matrix

Returns: Yields a squared numpy matrix with gaussians disks

pylissom.utils.stimuli.generate_random_faces(size)[source]
pylissom.utils.stimuli.generate_three_dots(size, mu_x, mu_y, sigma_x, orientation)[source]

Returns: A numpy matrix with 3 gaussian disks representing a face

pylissom.utils.stimuli.faces_generator(size, num=1)[source]
Parameters:
  • size – img will have shape = (size, size)
  • gaussians – How many faces per matrix

Returns: Yields a squared numpy matrix with 3-gaussians faces

pylissom.utils.stimuli.combine_matrices(*matrices)[source]

Returns: Merges matrices in one matrix using the maximum values in each pixel

pylissom.utils.stimuli.sine_grating(size, freq, phase)[source]