Использование предоставленного вами фрагмента кода и добавление двоичной классификации basi c Keras Модель.
Код, используемый для воспроизведения:
%tensorflow_version 2.x # Using Google Colab
import tensorflow as tf # Tensorflow 2.2.0-rc3
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
model = Sequential()
model.add(Dense(32, input_shape = (2,)))
model.add(Dense(1, activation = 'sigmoid'))
print("Initiating gradient checker")
sample_x_tensor = tf.random.normal((100,2))
# sample_x_tensor = sample_x.toarray()
# sample_x_tensor = tf.convert_to_tensor(sample_x.toarray())
sample_x_tensor = tf.cast(sample_x_tensor, tf.float32)
with tf.GradientTape() as tape:
tape.watch(sample_x_tensor)
y_pred = model(sample_x_tensor)
print(y_pred[0])
jacobian = tape.jacobian(y_pred, sample_x_tensor)
Возвращает:
Initiating gradient checker
tf.Tensor([0.38266268], shape=(1,), dtype=float32)
Он успешно выполнен, но я бы посоветовал вам несколько вещей:
- Проверьте вашу модель Слои и посмотрите, он обрабатывает правильные типы данных .
- Проверьте формы входных данных и Тип , убедитесь, что он совместим с используемыми слоями , (Tensor Datatype как можно больше)
Надеюсь, это поможет вам.