axis=1)[:, None] # Number of examples examples_x_class = np.ceil(examples_x_class * np.array(args.division)[:, None]) else: # Balanced distribution of nodes examples_x_class = np.tile( np.ceil(np.array(args.division) / num_class)[:, None], (1, num_class)) # Iterate class prototypes for i in range(num_class): el = Element(proto_files[i]) # Define distortions el.set_distortion(args.nodeDisplace, args.nodeAdd, args.edgeMaximum, args.addEdge, args.rmEdge, args.edgeConnection) # Add nodes if necessary if args.nodeThreshold is not None: el.add_nodes(args.nodeThreshold) # For each set (train, validation, test) for s in range(len(f_set)): # Apply random distortion to generate each element for sample in range(int(examples_x_class[s][i])): g = el.distort() nx.write_gml( g, args.dirDataset + f_set[s] + str(sample) + '_' + el.get_label() + '.gml')