#python #parallel-processing #python-asyncio
#python #параллельная обработка #python-asyncio
Вопрос:
У меня есть 2 класса, метод class1 должен выполнять итерацию с шагом по времени и вычислять значение, зависящее от времени, в то время как метод follow class2 должен регистрировать каждые 10 значений списка истории class1. Как я могу сделать это с помощью asyncio, чтобы оба могли выполняться параллельно, а метод follow для class2 вводил каждые 10 значений во время выполнения метода моделирования?
Это моя попытка
class Class1:
def __init__(self,time):
self.time = time
self.current_time = 0
self.history = []
def get_values(self):
print('do something with time', self.current_time)
self.current_time = 1
async def run_simulation(self):
while self.current_time <= self.time:
self.get_values()
self.history.append(self.current_time)
class Class2:
def __init__(self, class1 ,time_interval = 10):
self.time_interval = time_interval
self.class1 = class1
async def measure(self):
while self.class1.current_time <= self.class1.time:
if self.class1.current_time%self.interval == 0:
print(self.class1.current_time)
object1 = Class1(100)
object2 = Class2(object1,10)
asyncio.run(object1.run_simulation())
asyncio.run(object2.measure())
У вас есть какие-либо идеи?
Спасибо
Комментарии:
1. Из-за случайного характера процесса обучения, если вы хотите воспроизвести результаты обучения exacts на обеих машинах, вы должны предоставить начальное значение. Здесь вы можете прочитать более подробное объяснение об этом machinelearningmastery.com /…
2. Вы имеете в виду
is one order of magnitude below than on PC2
?3. Использование одной и той же предварительно обученной модели является обязательным для вашей цели, но вам также необходимо убедиться, что на обеих машинах все вычисления выполняются в одном и том же порядке. Из-за всех задействованных случайных вычислений вам необходимо предоставить
seed
4. Единственное различие, которое я вижу, заключается в том, что для сходимости требуется более низкая скорость обучения. Не могли бы вы упомянуть другие способы, которыми результаты отличаются? Кроме того, вы пробовали использовать одну и ту же версию tensorflow на обеих машинах?
5. Вы можете попробовать использовать
tf.random.set_seed()
иnp.random.seed()
в обеих системах с одинаковым начальным номером и проверить, отличаются ли результаты.