Я хочу вызвать класс Python из Java. Более конкретно, я хочу вызвать два метода, которые генерируют / загружают модели keras.
Я использовал Jython, но после вызова моего module.py он не находит импорт keras. Теперь, какие у меня есть альтернативы? Я не хочу манипулировать объектами Java, хочу лишь манипулировать весами отдельных сетевых слоев. Возможно ли в Java манипулировать весами керас? Любая помощь очень ценится. Код для манипулирования весами следующий:
def update_population(self,win_rate,population_size):
models = []
json_file = open('model_num.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
for counter in range(population_size):
loaded_model.load_weights('network' + str(counter) + '.h5')
models.append(loaded_model)
top_3_models = sorted(zip(win_rate, models), reverse=True)[:3]
top_models = []
for item in top_3_models:
top_models.append(item[1])
new_models = []
clone_counter = 3
for model in top_models:
new_models.append(model)
old_weights = []
for layer in model.layers:
old_weights.append(layer.get_weights())
for i in range(clone_counter):
new_model = clone_model(model)
new_weights = copy.copy(old_weights)
for weight in new_weights:
weight += normal(0,.1)
new_model.set_weights(new_weights)
new_models.append(new_model)
if clone_counter ==3:
clone_counter = 2
counter = 0
for model in new_models:
model.save('network' + str(counter) + '.h5')
counter +=1