который я сохраняю, чтобы найти пересечения этих ребер с плоскостью. Ротатор задается как вращение, повторяющееся 12 раз для каждой координаты Cube_edges, поэтому я могу умножать по 0-й оси размера 12 (количество ребер) и 1-й оси размера 2 (два конца ребра) для всех координат:
Форма Cube_edges — (12, 2, 3), а форма Rxy — (12, 2, 3, 3)< /код>. Умножение должно действовать по первым двум измерениям (12, 2) для всех одиночных вращений 3x3 на координаты точки размером (3). Я не могу понять, как использовать np.tensordot или что-то в этом роде для этой цели:
Мне хотелось найти координаты куба после двух вращений (X и Y) без циклов. Координаты куба хранятся в виде вершин: [code]cube_vertices = np.array([[0, 0, 0], [1, 0, 0], [1, 1, 0], [0, 1, 0], [0, 0, 1], [1, 0, 1], [0, 1, 1], [1, 1, 1]]) [/code] А я в основном работаю с краями: [code]cube_edges = np.array([[cube_vertices[0], cube_vertices[1]], [cube_vertices[0], cube_vertices[3]], [cube_vertices[1], cube_vertices[2]], [cube_vertices[3], cube_vertices[2]], [cube_vertices[1], cube_vertices[5]], [cube_vertices[2], cube_vertices[7]], [cube_vertices[3], cube_vertices[6]], [cube_vertices[0], cube_vertices[4]], [cube_vertices[4], cube_vertices[5]], [cube_vertices[4], cube_vertices[6]], [cube_vertices[6], cube_vertices[7]], [cube_vertices[5], cube_vertices[7]]]) [/code] который я сохраняю, чтобы найти пересечения этих ребер с плоскостью. Ротатор задается как вращение, повторяющееся 12 раз для каждой координаты Cube_edges, поэтому я могу умножать по 0-й оси размера 12 (количество ребер) и 1-й оси размера 2 (два конца ребра) для всех координат: [code]phi, theta = 0.1, 0.1 Rx = np.tile(np.array([[1, 0, 0], [0, np.cos(theta), -np.sin(theta)], [0, np.sin(theta), np.cos(theta)]]), (12, 2, 1, 1))
Ry = np.tile(np.array([[np.cos(phi), 0, np.sin(phi)], [0, 1, 0], [-np.sin(phi), 0, np.cos(phi)]]), (12, 2, 1, 1)) Rxy = Rx * Ry [/code] Форма Cube_edges — (12, 2, 3), а форма Rxy — (12, 2, 3, 3)< /код>. Умножение должно действовать по первым двум измерениям (12, 2) для всех одиночных вращений 3x3 на координаты точки размером (3). Я не могу понять, как использовать np.tensordot или что-то в этом роде для этой цели: [code]rotated_edges = np.tensordot(Rxy, cube_edges) [/code] Результирующая форма Rotat_edges должна быть такой же, как у Cube_edges (12, 2, 3). Спасибо!
Мне хотелось найти координаты куба после двух вращений (X и Y) без циклов.
Координаты куба хранятся в виде вершин:
cube_vertices = np.array([ ,
,
,
,
,
,
,
])
А я в основном работаю с краями:
cube_edges = np.array([[cube_vertices ,...
Я пытаюсь вычислить некоторые производные результатов нейронной сети. Если быть точным, мне нужна матрица Якобиана функции, представленной нейронной сетью, и вторая производная функции по ее входным данным.
Я хочу умножить производную якобиана с...
Я пытаюсь вычислить некоторые производные результатов нейронной сети. Если быть точным, мне нужна матрица Якобиана функции, представленной нейронной сетью, и вторая производная функции по ее входным данным.
Я хочу умножить производную якобиана с...
Я имею с редкой матрицей a и вектором x в собственном, и мне нужно выполнить следующую транспонированную матрицу × матрица × векторная операция: t ax . Это можно разложить на два умножения матрицы-вектора: y = ax , за которым следует a t y . Первый...