Я изучаю IA с помощью pytorch и реализую несколько игрушечных примеров.
Сначала я создал одномерный тензор (X) и второй тензор (y), производный от первого:
X = torch.arange(0, 100, 1.0).unsqueeze(dim=1)
y = X * 2
У меня есть что-то вроде
X = tensor([[0.], [1.], [2.], [3.], [4.], [5.], ...
y = tensor([[ 0.], [ 2.], [ 4.], [ 6.], [ 8.], [10.], ...
Затем я обучил модель прогнозировать y, и она работала нормально.
Теперь мне хотелось бы чего-то другого. X будет 2D, а y 1D. y вычисляется с помощью операции с элементами X:
If x[0] + x[1] >0? y = 10: y -10
X = tensor([[ 55.5348, -97.7608],
[ 29.0493, -52.1908],
[ 47.1722, -43.1151],
[ 11.1242, -62.8652],
[ 44.8067, 80.8335],...
y = tensor([[-10.], [-10.], [ 10.], [-10.], [ 10.],...
Первый вопрос: имеет ли это смысл с точки зрения машинного обучения?
Второй...
Я генерирую тензоры используя numpy. Могу ли я сделать это более разумным способом?
# Criar X valores de entrada para testes
X_numpy = np.random.uniform(low=-100, high=100, size=(1000,2))
print("X", X_numpy)
#y_numpy = np.array([[ (n[0]+n[1]) >= 0 ? 10:-10] for n in X_numpy])
y_numpy = np.empty(shape=[0, 1])
for n in X_numpy:
if n[0] + n[1] >= 0:
y_numpy = np.append(y_numpy, [[10.]], axis=0)
elif n[0] + n[1] < 0:
y_numpy = np.append(y_numpy, [[-10.]], axis=0)
Подробнее здесь: https://stackoverflow.com/questions/784 ... n-practice