# Parameters of the plot, deduced from the data n_rows = len(patterns) n_columns = len(ranks) + 1 # Plot the three images fig = plt.figure() for i, pattern in enumerate(patterns): # Generate the original image weight_img = gen_image(region=pattern, image_height=image_height, image_width=image_width) weight_img = tl.tensor(weight_img) # Generate the labels y = tl.dot(partial_tensor_to_vec(X, skip_begin=1), tensor_to_vec(weight_img)) # Plot the original weights ax = fig.add_subplot(n_rows, n_columns, i * n_columns + 1) ax.imshow(tl.to_numpy(weight_img), cmap=plt.cm.OrRd, interpolation='nearest') ax.set_axis_off() if i == 0: ax.set_title('Original\nweights') for j, rank in enumerate(ranks): # Create a tensor Regressor estimator estimator = CPRegressor(weight_rank=rank,
# Parameters of the plot, deduced from the data n_rows = len(patterns) n_columns = len(ranks) + 1 # Plot the three images fig = plt.figure() for i, pattern in enumerate(patterns): print('fitting pattern n.{}'.format(i)) # Generate the original image weight_img = gen_image(region=pattern, image_height=image_height, image_width=image_width) weight_img = tl.tensor(weight_img) # Generate the labels y = tl.dot(partial_tensor_to_vec(X, skip_begin=1), tensor_to_vec(weight_img)) # Plot the original weights ax = fig.add_subplot(n_rows, n_columns, i*n_columns + 1) ax.imshow(tl.to_numpy(weight_img), cmap=plt.cm.OrRd, interpolation='nearest') ax.set_axis_off() if i == 0: ax.set_title('Original\nweights') for j, rank in enumerate(ranks): print('fitting for rank = {}'.format(rank)) # Create a tensor Regressor estimator estimator = TuckerRegressor(weight_ranks=[rank, rank], tol=10e-7, n_iter_max=100, reg_W=1, verbose=0) # Fit the estimator to the data
X = rng.normal(size=(1000, image_height, image_width), loc=0, scale=1) # Paramters of the plot, deduced from the data n_rows = len(patterns) n_columns = len(ranks) + 1 # Plot the three images fig = plt.figure() for i, pattern in enumerate(patterns): # Generate the original image weight_img = gen_image(region=pattern, image_height=image_height, image_width=image_width) # Generate the labels y = partial_tensor_to_vec(X, skip_begin=1).dot(tensor_to_vec(weight_img)) # Plot the original weights ax = fig.add_subplot(n_rows, n_columns, i*n_columns + 1) ax.imshow(weight_img, cmap=plt.cm.OrRd, interpolation='nearest') ax.set_axis_off() if i == 0: ax.set_title('Original\nweights') for j, rank in enumerate(ranks): # Create a tensor Regressor estimator estimator = KruskalRegressor(weight_rank=rank, tol=10e-7, n_iter_max=100, reg_W=1, verbose=0) # Fit the estimator to the data estimator.fit(X, y)