def read_data(datasetDirectory, lines_to_jump): data_letters = {} datasets = glob.glob(datasetDirectory + '/*.dat') for dataset in datasets: name = os.path.splitext(os.path.basename(dataset))[0] if name in alphabet: try: with open(dataset, 'r') as data: i=0 for line in data.readlines(): i+=1 if i>lines_to_jump: shape = literal_eval(('['+ line +']').replace('[,','[')) shape = np.reshape(shape, (-1, 1)) data_stroke = Stroke() data_stroke.stroke_from_xxyy(np.reshape(shape,len(shape))) #data_stroke.uniformize() try: data_stroke.normalize_wrt_max() except ValueError: print name+" is empty" data_letters.setdefault(name,[]).append(data_stroke) except IOError: raise RuntimeError("no reading permission for file"+dataset ) return data_letters
def read_data(datasetDirectory, lines_to_jump): data_letters = {} datasets = glob.glob(datasetDirectory + '/*.dat') for dataset in datasets: name = os.path.splitext(os.path.basename(dataset))[0] if name in alphabet: try: with open(dataset, 'r') as data: i = 0 for line in data.readlines(): i += 1 if i > lines_to_jump: shape = literal_eval( ('[' + line + ']').replace('[,', '[')) shape = np.reshape(shape, (-1, 1)) data_stroke = Stroke() data_stroke.stroke_from_xxyy( np.reshape(shape, len(shape))) #data_stroke.uniformize() try: data_stroke.normalize_wrt_max() except ValueError: print(name + " is empty") data_letters.setdefault(name, []).append(data_stroke) except IOError: raise RuntimeError("no reading permission for file" + dataset) return data_letters
def respond_to_demonstration_letter(self, demonstration, letter, mode='midway', mode_param=0.5): demo_stroke = Stroke() demo_stroke.stroke_from_xxyy( np.reshape(demonstration, len(demonstration))) demo_stroke.normalize_wrt_max() if mode == 'midway': learned_stroke = stroke.midway(demo_stroke, self.generated_letters[letter], mode_param) self.generated_letters[letter] = learned_stroke save_learned_allograph(self.child_path, letter, learned_stroke) _, score = stroke.euclidian_distance(demo_stroke, self.refs[letter]) if mode == 'simple': learned_stroke = stroke.weigthedSum(demo_stroke, self.generated_letters[letter], mode_param) self.generated_letters[letter] = learned_stroke save_learned_allograph(self.child_path, letter, learned_stroke) _, score = stroke.euclidian_distance(demo_stroke, self.refs[letter]) return self.shape_message(letter), score
def respond_to_demonstration_letter(self, demonstration, letter, grade, mode='midway'): demo_stroke = Stroke() demo_stroke.stroke_from_xxyy(np.reshape(demonstration,len(demonstration))) #demo_stroke.uniformize() demo_stroke.normalize_wrt_max() if mode == 'midway': learned_stroke = stroke.midway(demo_stroke, self.generated_letters[letter], grade) self.generated_letters[letter] = learned_stroke save_learned_allograph(self.robot_path, letter, learned_stroke) _,score = stroke.euclidian_distance(demo_stroke, self.refs[letter]) #if mode = 'PCA' #if mode = 'sigNorm' (mixture of sigma-log-normal) #if mode = 'CNN' (1-D convolutionnal neural networks) return self.shape_message(letter),score
else: feedback -= 1 if bug_on_last_line: time = bug_variables[0] name = bug_variables[1] ischouchou = bug_variables[2] if found_demo_bug2: string2 = str(found_demo_bug2.group("path2")) string = string_bug + string2 try: path = np.array( literal_eval(string)) #.replace('"',''))) graph = Stroke() graph.stroke_from_xxyy(path) graph.downsampleShape(70) if name in prev_strokes: _, score = stroke.euclidian_distance( prev_strokes[name], graph) prev_strokes[name].reset() prev_strokes[name].stroke_from_xxyy(path) prev_strokes[name].downsampleShape(70) else: score = -1. prev_strokes[name] = Stroke() prev_strokes[name].stroke_from_xxyy(path) prev_strokes[name].downsampleShape(70) liste = []
i = 0 with open(log_path1, 'r') as log: for line in log.readlines(): found_demo = new_demo.search(line) if found_demo :#and opens[0]: string = str(found_demo.group("path"))[:-1] name = found_demo.group("letter") try: path = np.array(literal_eval(string.replace('"',''))) graph = Stroke() graph.stroke_from_xxyy(path) score = minScore(learning_manager.robot_data,graph,name) if name in letter_score: letter_score[name] += [score] else: letter_score[name] = [score] except SyntaxError: pass i = 0 with open(log_path1, 'r') as log: for line in log.readlines(): found_demo = new_demo.search(line) if found_demo :#and opens[0]: