Как эффективно создать большой многослойный график из ROOT-файла для использования машинного обучения в StellarGraphPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как эффективно создать большой многослойный график из ROOT-файла для использования машинного обучения в StellarGraph

Сообщение Anonymous »

Я хочу создать многослойный граф, соответствующий такой структуре (но чтобы каждый узел также соединялся с каждым узлом следующего уровня):
Изображение

Что я хочу сделать с этим графиком, так это применить некоторый алгоритм машинного обучения после загрузки его в StellarGraph, поэтому я Я использую код NetworkNx, чтобы попытаться создать график, поскольку StellarGraph может загружать графики непосредственно из NetworkNx.
Поскольку создать весь график сразу было бы слишком сложно, я попробовал создать график пакетами , вот код для создания графика для слоя 1:

Код: Выделить всё

file = uproot.open("file.root")
tree = file["data"]

# Get the Event branches
hits = tree["Nhit"].array()
i_pos_arrays = tree["I"].array()
j_pos_arrays = tree["J"].array()
layers = tree["K"].array()

node_index = 1
graph = nx.Graph()
previous = []
layer = 1
start_time = time.time()

for hits, x, y, z in zip(hits, i_pos_arrays,j_pos_arrays,layers):
sorted_indices = np.argsort(z)
x = x[sorted_indices]
y = y[sorted_indices]
z = z[sorted_indices]

for i in range(hits):
if(z[i] == layer):
#node_attributes = {'x': x[i], 'y': y[i] ,'z':z[i]}
graph.add_node(node_index)
# graph.nodes[node_index].update(node_attributes)  # Luego actualizar atributos

if previous:
for pre_graphs in previous:
graph.add_edge(pre_graphs, node_index)
previous.append(node_index)
else:
previous.append(node_index)
node_index = node_index + 1
Информация: каждый элемент в i_pos_arrays, j_pos_arrays, слои — это массивы, попадания — это один массив.
Проблема: Мне просто не хватает памяти при создании графика (16 ГБ ОЗУ), поэтому я хочу знать, какие еще инструменты или методы я могу использовать для достижения своей цели.

Подробнее здесь: https://stackoverflow.com/questions/791 ... machine-le
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»