Hate to ask a question like this on machine learning but googling has yielded nothing useful - I\'ve just found 2 github threads where people on super old versions of tensor
You've added a weight self.kernel but didn't use it anywhere in your call function.
Therefore, TF is unable to compute gradient for the parameters in self.kernel. In this case, the gradient will be None and that's why you're seeing an error complaining about operating on None values.
Removing the line self.kernel = self.add_weight(...) should make it work.