Следующий код написан с использованием python 3.6. Следует создать конечную матрицу, содержащую двоичные векторы. Во время цикла каждая партия берется из последовательных векторов, которые будут использоваться методом simulate_output()
, но в итоге партия выравнивается, чтобы получить один вектор:
tmp_list = []
output = []
num_components = 4
dim = 16
total_vectors = 100000
X = np.random.choice(np.array([0, 1], dtype=np.uint8), size=(total_vectors, dim))
num_vectors = np.unique(X, axis=0)
for i in range(0, len(num_vectors), num_components):
batch = num_vectors[i:(i + num_components)]
# output.append(simulate_output(batch)) # Comment this line will not solve the error.
batch = np.hstack(batch) # to flatten the list into a single vector
tmp_list.append(batch)
final_matrix = np.array(tmp_list, dtype=np.int8)
print(final_matrix)
Для некоторых прогонов я получаю эту ошибку:
Traceback (most recent call last):
File "test.py", line 65, in <module>
final_matrix = np.array(tmp_list, dtype=np.int8)
ValueError: setting an array element with a sequence.
Я считаю, что ошибка в последней строке final_matrix = np.array(tmp_list, dtype=np.int8)
, но я понятия не имею, почему и как это исправить, поскольку в некоторых запусках это работает, в то время как в других запусках это не так.
Спасибо