# Define a Toy dataset.
x_train = np.array([[3.3],[4.4],[5.5],[6.71],[6.93],[4.168],[9.779],[6.182],[7.59],[2.167],[7.042],[10.791],[5.313],[7.997],[3.1]], dtype=np.float32)
y_train = np.array([[1.7],[2.76],[2.09],[3.19],[1.694],[1.573],[3.366],[2.596],[2.53],[1.221],[2.827],[3.465],[1.65],[2.904],[1.3]], dtype=np.float32)# Confirm the data shape.print(x_train.shape, y_train.shape)
(15, 1) (15, 1)
# Linear regression model
model = nn.Linear(input_size, output_size)
# Loss and optimizer
criterion = nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate,)
# Train the modelfor epoch inrange(num_epochs):# Convert numpy arrays to torch tensors
inputs = torch.from_numpy(x_train)
targets = torch.from_numpy(y_train)# Forward pass
outputs = model(inputs)
loss = criterion(outputs, targets)# Backward and optimize
optimizer.zero_grad()
loss.backward()
optimizer.step()# Set an output counterif(epoch+1)%5==0:print('Epoch [{}/{}], loss: {:.4f}'.format(epoch+1, num_epochs, loss.item()))# Plot the graph
predicted = model(torch.from_numpy(x_train)).detach().numpy()
plt.plot(x_train, y_train,'ro', label='Original data')
plt.plot(x_train, predicted, label='Fitted line')
plt.legend()
plt.show()
与普通函数区别:1.多了个template<class T>;2.某些确定类型变不确定类型T
一:引子:
#include<iostream>
using namespace std;
template<typename T>
T Max(T a, T b)
{return a > b ? a : b;
}
int main()
{int x, …