Non-categorical loss in Keras
It sounds like you want your model to output a probability distribution which matches a &quot;ground truth&quot; probability distribution.  Instead of a cross-entropy loss, you should try Kullback-Leiber divergence (keras.losses.kullback_leibler_divergence).
KL-divergence measures the difference between two probability distributions.  Minimizing KL-divergence should cause your predicted distribution to match the actual distribution.
By the way, KL-divergence is not just a workaround for Keras's cross-entropy limitations.  It's actually the better loss function for this task.  From the wikipedia page on KL-divergence (emphasis added by me):

$$D_{KL}(P \| Q) = H(P, Q) - H(P)$$
where $H(P, Q)$ is the cross entropy of P and Q, and $H(P)$ is the entropy of P (which is the same as the cross-entropy of P with itself).
The KL divergence $D_{KL}(P \| Q)$ can be thought of as something like a measurement of how far the distribution Q is from the distribution P.  The cross-entropy $H(P, Q)$ is itself such a measurement, but it has the defect that $H(P, P) = H(P)$ is not zero, so we subtract $H(P)$ to make $D_{KL}(P \| Q)$ agree more closely with our notion of distance.