def get_raw_one_slice(subject_num, slice_num, folder_name='./train_data/', label=False): from src.util import read_data ret = np.empty(( _width, _height), dtype =np.int16) if subject_num < 10: subject_name = 'Subject0' + str(subject_num) else: subject_name = 'Subject' + str(subject_num) if label is True: fn = folder_name + subject_name + '/' + subject_name + '_Label.nii' else: fn = folder_name + subject_name + '/' + subject_name + '.nii' arr = read_data(fn).get_data() ret = arr[slice_num] return ret
def get_raw_slices(total_slice_num = _slice_num, slice_nums=[], subject_nums=[], folder_name='./train_data/', label=False): from src.util import read_data if subject_nums == []: subject_nums = range(1, _subject_number + 1) ret = np.empty((total_slice_num, _width, _height), dtype =np.int16) idx = 0 for i in subject_nums: if i < 10: subject_name = 'Subject0' + str(i) else: subject_name = 'Subject' + str(i) if label is True: fn = folder_name + subject_name + '/' + subject_name + '_Label.nii' else: fn = folder_name + subject_name + '/' + subject_name + '.nii' arr = read_data(fn).get_data() if slice_nums == []: begin = arr.shape[0]/2 - 2 end = arr.shape[0]/2 + 2 slice_nums = np.arange(begin, end + 1) # this this for some slices with different width and height offset = slice_nums.shape[0] if arr.shape[-1] != _height: diff_y = _height - arr.shape[1] diff_x = _width - arr.shape[2] ret[idx: idx + offset, :, :] =np.lib.pad( arr[slice_nums], ((0, 0), (diff_y, 0), (diff_x,0)), 'minimum') else: ret[idx:idx+offset, :, :] = arr[slice_nums] idx = idx + offset return ret
print(logs) self.losses.append(logs.get('loss')) if __name__ == '__main__': train_file_filter = "train_*.txt" test_file_filter = "test_*.txt" seq_length = 150 embedding_dim = 50 # 単語ベクトルの次元数 lstm_units = 50 # LSTMの隠れ状態ベクトルの次元数 epoch_size = 5 batch_size = 20 # read source data label_dict = util.create_label('./train_master.tsv') sentences_train, labels, train_files = util.read_data( "./train/", train_file_filter, label_dict) sentences_test, labels_test, test_files = util.read_data( "./test/", test_file_filter, None) train, test, seq_length, vocab_size = util.create_train_data( sentences_train, sentences_test, seq_length) X_train, X_test, y_train, y_test = train_test_split( train, labels, test_size=0.15, random_state=random.randint(0, 100)) # create model model = model.create_bidirectional(vocab_size=vocab_size, embedding_dim=embedding_dim, seq_length=seq_length, lstm_units=lstm_units) #model = model.create_3layer(seq_length=seq_length)
import sys dir = os.getcwd() sys.path.append(dir) result_dir = dir + '/result/test_1/' test_data_dir = dir + '/train_data/' import numpy as np from src.asm_util import get_bulk_points slice_num = 5 v = np.empty((7, slice_num, 16), dtype=np.int) v[0], v[1], v[2], v[3], v[4], v[5], v[6] = get_bulk_points() from src.util import read_data subject = 'Subject01' label_fn = test_data_dir + subject + '/' + subject + '_Label.nii' label_data = read_data(label_fn).get_data() total_slice_num = label_data.shape[0] from src.asm_util import get_profile_feature_one_vertebra from src.asm_util import get_raw_slices vertebra_number = 6 I = get_raw_slices() #L = get_raw_slices(vertebra_number, label=True) #from src.util import show_volume #show_volume(I,75) _K = 1 _sigmas = np.array([2, 3]) mid = total_slice_num/2 label = label_data[mid-2 : mid+3] samplepoints, intensities, labels, features= get_profile_feature_one_vertebra(v[vertebra_number], I, _k, label, sigmas = _sigmas)
range_start = 15 range_end = range_start + 1 fnum = range(range_start, range_end) from src.util import read_data label_data={} data = {} subject = '' for i in fnum: if i < 10: subject = 'Subject0' + str(i) else: subject = 'Subject' + str(i) label_fn = test_data_dir + subject + '/' + subject + '_Label.nii' label_data[i] = read_data(label_fn) fn = test_data_dir + subject + '/' + subject + '.nii' data[i]=read_data(fn) #sumsum = 0 #num = 0 #for i in fnum: # idx = np.where(label_data[i].get_data() == 1) # num += np.array(idx[0]).size # sumsum += np.sum(data[i].get_data()[idx]) # #average = sumsum/num #================= get the location of the center ================== # goto slice 20 #slice_num = 20