I believe there's a mistake in the BasicLSTMCell.build method:
raise ValueError("Expected inputs.shape[-1] to be known, saw shape: %s"
% inputs_shape)
will be called with inputs_shape being a tuple and % formatting will interpret this tuple as multiple formatting arguments. Can we change it to
raise ValueError("Expected inputs.shape[-1] to be known, saw shape: %s"
% (inputs_shape,))
?