Создать связь между узлами с таким же свойством в Neo4J

У меня была аналогичная проблема с входным тензором для моего предсказателя. Я расширил измерение на единицу, и проблема была решена. Сначала я предлагаю запустить предиктор в python. Это помогает определить размер входного тензора, который вы передаете предиктору. Затем повторите точный размер в C ++. Кроме того, на основе вашего фрагмента кода я не уверен, как вы определяете входные данные для метода Run. В моем коде я определил следующее:

std::vector<std::pair<std::string, tensorflow::Tensor>> input = { {"input_1", input_tensor } };

, где «input_1» - это имя моего входного слоя. Надеюсь, это поможет.

0
задан Guy Coder 19 January 2019 в 13:19
поделиться

2 ответа

  1. В вашем запросе второе предложение WITH не включало personA, поэтому переменная была удалена.
  2. Но оба предложения WITH даже не нужны в вашем запросе и поэтому должны быть опущены (для ясности, если ничего больше).
  3. Ваш запрос также может очень легко содержать одно предложение MATCH, которое напрямую использует имена переменных personA и personB.
  4. Ваше предложение WHERE позволит дважды обрабатывать одну и ту же пару Person узлов (в обратном порядке). Вы можете убедиться, что одна и та же пара обрабатывается только один раз, используя, например, ID(personA) < ID(personB) вместо personA <> personB.
  5. CREATE UNIQUE устарело, и вместо этого следует использовать MERGE.
  6. MERGE не требует, чтобы вы указали направленность отношений - он может автоматически назначить их для вас. Это уместно, если вы хотите рассматривать отношения как ненаправленные (что верно в вашем случае).

Вот запрос, который заботится обо всех вышеупомянутых элементах:

MATCH (personA:Person), (personB:Person)
WHERE ID(personA) < ID(personB) AND personA.born = personB.born
MERGE (personA)-[:HAS_SAME_AGE {sameAge: "Has same age"}]-(personB)

Примечание: Вы можете задать sameAge логическое значение (true или false) , Или, что еще лучше, просто полностью исключите sameAge, поскольку связь HAS_SAME_AGE будет существовать только в том случае, если два связанных узла в любом случае будут иметь одинаковый возраст.

0
ответ дан cybersam 19 January 2019 в 13:19
поделиться

Этот запрос создаст пустые узлы и создаст отношения между пустым узлом и данным узлом.

Проблема здесь в том, что « personA » не входит в сферу «CREATE UNIQUE».

Вам необходимо передать его вместе с «personB» в секунде с предложением «[».

CREATE UNIQUE не поддерживается в новых версиях Cypher с использованием MERGE вместо.

MATCH (a:Person)
with a AS personA
MATCH (b:Person)
with personA, b AS personB
WHERE personA.born = personB.born AND personA <> personB
CREATE UNIQUE (personA)-[:HAS_SAME_AGE {sameAge: "Has same age"}]->(personB)
0
ответ дан Raj 19 January 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: