def svd_tolerance(): # matrix = np.load('../data/converted_matrix.npy') matrix = ca_data_utils.load_vid() print('done loading data') U, s, V = randomized_svd(matrix, n_components=500) n_oversamples = [50, 100, 150, 200] # from 5 - 20 n_iters = [40, 70, 100] # from 4, 7, norms = [] for n in n_oversamples: print('start doing n_oversample = ', n) norm = check_n_oversamples(matrix, n) norms.append(norm) print('done doing n_oversample = ', n) # plt.plot(n_oversamples, norms) # plt.savefig('n_oversamples') np.save('n_oversamples', norms) norms = [] for n in n_iters: print('starting doing n_iters = ', n) norm = check_n_iters(matrix, n) norms.append(norm) print('done doing n_iters = ', n) # plt.plot(n_iters, norms) # plt.savefig('n_iters') np.save('n_iters', norms)
def make_svd_matrices(): matrix = ca_data_utils.load_vid() print('done loading data') U, s, V = randomized_svd(matrix, n_oversamples=10, n_iter=20, n_components=1000) np.save('umat', U) np.save('svmat', np.dot(np.diag(s), V))
def main(): flatten = ca_data_utils.load_vid() X1 = flatten[:,:-1] X2 = flatten[:,1:] eigenvectors_high, omega, eigenvalues_high, b, Xdmd = dmd(X1, X2, 10, 1) # plot_utils.plot_eigenvalues(eigenvalues_high) # plot_utils.plot_modes(eigenvectors_high, vid[0].shape, eigenvalues_high) print(Xdmd.shape) np.save('reconstructed', Xdmd) np.save('eigenvalue_high', eigenvalues_high) np.save('eigenvectors_high', eigenvectors_high)
def svd_tune_rank(): matrix = ca_data_utils.load_vid() print('done loading data') ranks = np.linspace(500, 1000, 5) ranks = ranks.astype(int) norms = [] for r in ranks: print('starting rank = ', r) U, s, V = randomized_svd(matrix, n_oversamples=150, n_iter=30, n_components=r) diff = matrix - np.dot(U, np.dot(np.diag(s), V)) norms.append(np.linalg.norm(diff)) print('done rank = ', r) norms = np.array(norms) / 15452.521 np.save('ranks', norms)
def main(): # when on cylon to test on full vid fdir = '../data/vid.tif' # when local test use 'short_vid.tif' vid = ca_data_utils.load_vid() X1 = flatten[:, :-1] X2 = flatten[:, 1:] print('start dmd') dmd = DMD(svd_rank=10) dmd.fit(flatten.T) print('finished fitting data') for eig in dmd.eigs: print('Eigenvalue {}: distance from unit circle {}'.format( eig, np.abs(eig.imag**2 + eig.real**2 - 1))) dmd.plot_eigs(show_axes=True, show_unit_circle=True) self_re = np.load('reconstructed.npy') diff = dmd.reconstructed_data.T - self_re print(len(np.where(np.abs(diff) > 1e-3)[0])) print(diff.max()) print(diff.min())
import scipy.io import numpy as np import skimage.io import ca_data_utils def trunk_data_by_states(vid, labels): state_1 = np.where(labels == 1) state_2 = np.where(labels == 2) state_3 = np.where(labels == 3) print(state_1[0].shape) print(state_2[0].shape) print(state_3[0].shape) sleep = vid[:, state_1[0]] wake_1 = vid[:, state_2[0]] wake_2 = vid[:, state_3[0]] print(sleep.shape) np.save('../data/byState/sleep', sleep) np.save('../data/byState/wake_1', wake_1) np.save('../data/byState/wake_2', wake_2) if __name__ == '__main__': labels = ca_data_utils.load_labels() vid = ca_data_utils.load_vid() print(vid.shape) trunk_data_by_states(vid, labels)