Нужно признать, что функция unique
иногда может быть очень запутанной, если не дать надлежащих примеров и объяснений.
Параметр dim
указывает, к какому измерению тензорной матрицы вы хотите применить.
Например, в двумерной матрице dim=0
позволяет операции выполнять вертикально, где dim=1
означает горизонтально.
В качестве примера рассмотрим матрицу 4x4 с dim=1
. Как вы можете видеть из моего кода ниже, операция unique
применяется строка за строкой.
Вы замечаете двойное вхождение числа 11
в первом и последнем ряду. Numpy и Torch делают это, чтобы сохранить форму окончательной матрицы.
Однако, если вы не укажете какое-либо измерение, torch автоматически сгладит вашу матрицу, а затем применит к ней unique
, и вы получите одномерный массив, содержащий уникальные данные.
import torch
m = torch.Tensor([
[11, 11, 12,11],
[13, 11, 12,11],
[16, 11, 12, 11],
[11, 11, 12, 11]
])
output, indices = torch.unique(m, sorted=True, return_inverse=True, dim=1)
print("Ori \n{}".format(m.numpy()))
print("Sorted \n{}".format(output.numpy()))
print("Indices \n{}".format(indices.numpy()))
# without specifying dimension
output, indices = torch.unique(m, sorted=True, return_inverse=True)
print("Sorted (no dim) \n{}".format(output.numpy()))
Результат (dim = 1)
Ori
[[11. 11. 12. 11.]
[13. 11. 12. 11.]
[16. 11. 12. 11.]
[11. 11. 12. 11.]]
Sorted
[[11. 11. 12.]
[11. 13. 12.]
[11. 16. 12.]
[11. 11. 12.]]
Indices
[1 0 2 0]
Результат (без измерения)
Sorted (no dim)
[11. 12. 13. 16.]
Ваш компилятор не поддерживает его. AssemblyFileVersionAttribute и вся работа, потому что компилятор генерирует win32 ресурс в Вашем блоке под названием VERSIONINFO с той информацией в нем. Какие окна читает. Другие атрибуты просто сохраняются как метаданные наряду с Вашим кодом.
Вы могли сделать инструмент для изменения ресурса VERSIONINFO после компиляции.
Не ответ все же, но один 1/2 путь взлом должен использовать:
[assembly: AssemblyDescription("One Line of Content Here")]
И это обнаруживается в соответствии с "Комментариями".
(все еще исследование, это - что-то, что я хотел некоторое время.)
Единственный инструмент, который может управлять любым полем структуры VERSIONINFO из командной строки и следовательно может добавить дополнительное свойство во время процесса сборки, является Консолью Тюнера Ресурса:
http://www.reseditor.com/rtc-solution-version-info.htm
Цена в размере 199$ кажется немного высокой..., но если Вы не хотите проводить дни, слоняясь без дела с C/C++ затем, это - кража.