I took that out.  Even before that, I had the following line in my loop that cast x_categorical to a long tensor:
def tab_run(train_predictions, test_predictions):
    for epoch in range(epochs):
        for label, policy, categorical_data, numerical_data in train_loader_tab:
            # move data to GPU
            label = label.long()
            label = label.to(device)
            categorical_data = categorical_data.long()
            categorical_data = categorical_data.to(device)
            numerical_data = numerical_data.to(device)
            train_predictions = train_predictions.to(device)
        #         print(categorical_data.size(), label.size())
            # zero the parameter gradients
            optimizer.zero_grad()

            # Forward pass
            outputs = tab_model(numerical_data, categorical_data, train_predictions)
            loss = criterion(outputs, label)
            print(f"tab epoch: {epoch}, tab loss: {loss}")
            # Backward and optimize
            loss.backward()
            optimizer.step()

        for label, policy, categorical_data, numerical_data in test_loader_tab:
            # move data to GPU

            label = label.to(device)
            policy = policy.to(device)
            categorical_data = categorical_data.to(device)
            numerical_data = numerical_data.to(device)
            test_predictions = test_predictions.to(device)

            outputs = tab_model(numerical_data, categorical_data, test_predictions)
            loss = criterion(outputs, label)
            test_loss.append(loss.item())

        #         print(f"test epoch: {epoch}, test loss: {loss}")

        dt = datetime.now() - t0
        print('Duration:', dt)
        
tab_run(train_predictions = train_tensor, test_predictions = test_tensor)

Here is the error it gives after that:
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-62-d89c1efcb9b3> in <module>
     39         print('Duration:', dt)
     40 
---> 41 tab_run(train_predictions = train_tensor, test_predictions = test_tensor)

<ipython-input-62-d89c1efcb9b3> in tab_run(train_predictions, test_predictions)
     14 
     15             # Forward pass
---> 16             outputs = tab_model(numerical_data, categorical_data, train_predictions)
     17             loss = criterion(outputs, label)
     18             print(f"tab epoch: {epoch}, tab loss: {loss}")

~\AppData\Local\Continuum\anaconda3\envs\torch_env\lib\site-packages\torch\nn\modules\module.py in __call__(self, *input, **kwargs)
    530             result = self._slow_forward(*input, **kwargs)
    531         else:
--> 532             result = self.forward(*input, **kwargs)
    533         for hook in self._forward_hooks.values():
    534             hook_result = hook(self, input, result)

<ipython-input-55-1bdc8b23721e> in forward(self, x_categorical, x_numerical, predictions)
     35         embeddings = []
     36         for i, e in enumerate(self.all_embeddings):
---> 37             embeddings.append(e(x_categorical[:,i]))
     38 
     39         cat_embedd = torch.cat(embeddings, 1)

~\AppData\Local\Continuum\anaconda3\envs\torch_env\lib\site-packages\torch\nn\modules\module.py in __call__(self, *input, **kwargs)
    530             result = self._slow_forward(*input, **kwargs)
    531         else:
--> 532             result = self.forward(*input, **kwargs)
    533         for hook in self._forward_hooks.values():
    534             hook_result = hook(self, input, result)

~\AppData\Local\Continuum\anaconda3\envs\torch_env\lib\site-packages\torch\nn\modules\sparse.py in forward(self, input)
    112         return F.embedding(
    113             input, self.weight, self.padding_idx, self.max_norm,
--> 114             self.norm_type, self.scale_grad_by_freq, self.sparse)
    115 
    116     def extra_repr(self):

~\AppData\Local\Continuum\anaconda3\envs\torch_env\lib\site-packages\torch\nn\functional.py in embedding(input, weight, padding_idx, max_norm, norm_type, scale_grad_by_freq, sparse)
   1482         # remove once script supports set_grad_enabled
   1483         _no_grad_embedding_renorm_(weight, input, max_norm, norm_type)
-> 1484     return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
   1485 
   1486 

RuntimeError: Expected tensor for argument #1 'indices' to have scalar type Long; but got torch.cuda.FloatTensor instead (while checking arguments for embedding)