You could use your input data in a similar way, but would probably need to adapt the model architecture to accept “arrays” instead of images.
This can be done by e.g. nn.Linear layers and here is a very simple example with some annotations to get you started:
# 10 data samples with 8 features each
data = torch.randn(10, 8)

# one floating point target for each sample
target = torch.randn(10, 1)

# create a simple model using a linear layer
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.fc1 = nn.Linear(in_features=8, out_features=1)        
        
    def forward(self, x):
        x = self.fc1(x)
        return x

model = MyModel()
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.MSELoss()

# train the model for 10 epochs
nb_epochs = 1000
for epoch in range(nb_epochs):
    # zero out gradients, since gradients are accumulated in PyTorch
    optimizer.zero_grad()
    # perform the forward pass
    output = model(data)
    # calculate the loss
    loss = criterion(output, target)
    # calculate the gradients
    loss.backward()
    # optimize the parameters using the gradients
    optimizer.step()
    # print stats
    if epoch % 100 == 0:
        print('epoch {}, loss {}'.format(epoch, loss.item()))

I assume you’ve already taken a look at our tutorials 4, which would be the next steps to dig into the framework.