コード例 #1
0
		writer = csv.writer(f)

		errors_per_iteration = list()
		it = list()
		for i in range(iterations):
			print(i)
			new_w = w - (learning_rate) * rss_gradient(w,X_train,y_train)
			learning_rate, w = update_learning_rate(learning_rate,w,new_w,X_train,y_train)

			# Send w to all neighbors, receive other nodes' w 
			for recipient in m.getNeighbors().keys():
				message = {
					'weights' : w,
					'sync' : i
				}
				m.sendMessage(recipient,message)

			m.waitForMessageFromAllNeighbors(i)

			a = w.shape[0]
			vector_sum = np.zeros((a,1),dtype=float)

			for message in m.sync[i]:
				vector_sum = vector_sum + message['weights']

			vector_sum = vector_sum[0]
			size = float(len(m.sync[i]))

			w = vector_sum * (1.0 / size)
			y_est = np.dot(X_test,w)
コード例 #2
0
ファイル: life.py プロジェクト: jeperez/RPi-distributed-ML
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)
コード例 #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)
コード例 #4
0
ファイル: sample.py プロジェクト: jeperez/RPi-distributed-ML
# Demo of Messager class.
# run with: DEVICE_ID=1 python sample.py
import os
import time
from clustermessaging.Messager import Messager

m = Messager()

def callback(message, name):
    print('Message Received from %s! %s' % (name, message))

if os.environ['DEVICE_ID'] == '2':
    print('registering callback')
    m.registerCallback(callback)
else:
    print('sending message')
    m.sendMessage('2', 'hello, 2, i am %s' % m.getOwnName())

m.start()
コード例 #5
0
	# 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)

コード例 #6
0
ファイル: sample.py プロジェクト: jeperez/RPi-distributed-ML
# Demo of Messager class.
# run with: DEVICE_ID=1 python sample.py
import os
import time
from clustermessaging.Messager import Messager

m = Messager()


def callback(message, name):
    print('Message Received from %s! %s' % (name, message))


if os.environ['DEVICE_ID'] == '2':
    print('registering callback')
    m.registerCallback(callback)
else:
    print('sending message')
    m.sendMessage('2', 'hello, 2, i am %s' % m.getOwnName())

m.start()