Esempio n. 1
0
		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_[:]))
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
	# 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
Esempio n. 5
0
    # 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