target_column = m.topo.target_column if "diabetes" in train_file and "diabetes" in test_file: diabetes = True else: diabetes = False ID = int(os.environ["DEVICE_ID"]) # Gradient descent for fine tuning m = Messager() m.registerCallbackSync() m.start() nodes = len(m.getNeighbors()) + 1 X_train, y_train, X_test, y_test = read_data(train_file,test_file,ID,nodes,target_column) # Create the classifier clf = svm.SVC(kernel='linear',C=1.0) # Do the learning clf.fit(X_train,y_train) # Predict predictions = clf.predict(X_test) print("The error is {0}".format(mse(predictions,y_test))) print("The coefficients are {0}".format(clf.coef_[:]))
m.start() def setState(state): m.lifeState = state if state: led.setRedOn() else: led.setRedOff() setState(random.randint(0, 1) == True) i = 0 while True: i += 1 for neighbor in m.getNeighbors().keys(): message = { 'state': m.lifeState, 'sync': i } m.sendMessage(neighbor, message) m.waitForMessageFromAllNeighbors(i) c = sum(n['state'] for n in m.sync[i]) if c <= 1 or c >= 4: setState(False) if c == 3: setState(True)
m.registerCallbackSync() m.start() def setState(state): m.lifeState = state if state: led.setRedOn() else: led.setRedOff() setState(random.randint(0, 1) == True) i = 0 while True: i += 1 for neighbor in m.getNeighbors().keys(): message = {'state': m.lifeState, 'sync': i} m.sendMessage(neighbor, message) m.waitForMessageFromAllNeighbors(i) c = sum(n['state'] for n in m.sync[i]) if c <= 1 or c >= 4: setState(False) if c == 3: setState(True)
# Get necessary values ID = int(os.environ["DEVICE_ID"]) my_val = assignment[str(ID)] w = get_weights(m.topo,ID) # Create x vector nodes = len(assignment) x = np.zeros(nodes,dtype=float) x[ID-1] = my_val # Insert own value iterations = 10 for i in range(iterations): # time.sleep(1) # All of the communication to neighbors for recipient in m.getNeighbors().keys(): message = { 'value' : my_val, 'sync' : i } m.sendMessage(recipient,message) m.waitForMessageFromAllNeighbors(i) # Construct X for message in m.sync[i]: node = int(message['from']) value = float(message['value']) x[node-1] = value
# Get necessary values ID = int(os.environ["DEVICE_ID"]) my_val = assignment[str(ID)] w = get_weights(m.topo, ID) # Create x vector nodes = len(assignment) x = np.zeros(nodes, dtype=float) x[ID - 1] = my_val # Insert own value iterations = 10 for i in range(iterations): # time.sleep(1) # All of the communication to neighbors for recipient in m.getNeighbors().keys(): message = {'value': my_val, 'sync': i} m.sendMessage(recipient, message) m.waitForMessageFromAllNeighbors(i) # Construct X for message in m.sync[i]: node = int(message['from']) value = float(message['value']) x[node - 1] = value my_val = np.dot(w, x) x[ID - 1] = my_val print(my_val)
return (learning_rate * .5), old_w if __name__ == '__main__': # Parse command line options pp = pprint.PrettyPrinter() datafile = "data/iris_mod.csv" target_column = 4 iterations = 100 # Initialize lock and Messager objects m = Messager() m.registerCallbackSync() m.start() nodes = len(m.getNeighbors()) + 1 ID = int(os.environ["DEVICE_ID"]) w, X, y, num_samples = read_data(datafile,target_column,ID,nodes) learning_rate = .5 import csv test = open("test_val/test_{0}.csv".format(ID),"w") writer = csv.writer(test) for i in range(iterations): new_w = w - (learning_rate) * rss_gradient(w,X,y) learning_rate, w = update_learning_rate(learning_rate,w,new_w,X,y) writer.writerow(tuple([i,rss_error(w,X,y)])) # Send w to all neighbors, receive other nodes' w