我收到了错误

文件“/anaconda/envs/tf3/lib/python3.6/site-packages/keras/engine/training.py”,第830行,编译sample_weight,mask)文件“/ anaconda / envs / tf3 / lib / python3 .6 / site-packages / keras / engine / training.py“,第445行,加权score_array * =权重文件”/anaconda/envs/tf3/lib/python3.6/site-packages/tensorflow/python/ops/ math_ops.py“,第898行,在binary_op_wrapper中y = ops.convert_to_tensor(y,dtype = x.dtype.base_dtype,name =”y“)文件”/anaconda/envs/tf3/lib/python3.6/site-packages /tensorflow/python/framework/ops.py“,第932行,在convert_to_tensor中as_ref = False)文件”/anaconda/envs/tf3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py“ ,第1022行,in internal_convert_to_tensor ret = conversion_func(value,dtype = dtype,name = name,as_ref = as_ref)File“/anaconda/envs/tf3/lib/python3.6/site-packages/tensorflow/python/framework/ops .py“,第866行,在_TensorTensorConversionFunction(dtype.name,t.dtype.name,str(t))中)ValueError:Tensor转换为Tenso请求dtype int32 r与dtype float32:'Tensor(“global_average_pooling2d_1_sample_weights:0”,shape =(?,),dtype = float32)'

在培训阶段 .

通过 Conda 运行最新的 Keras (2.1.3)TensorFlow (1.5) .

以下是重现错误的最小代码:

from keras.layers import Input, Conv2D, GlobalAveragePooling2D
from keras.models import Model

import keras.backend as K
import numpy as np

def test_loss(y_input, x_input):

    x1 = K.cast(x_input, dtype='int32')
    y1 = K.cast(y_input, dtype='int32')

    loss = K.square(x1 - y1)


    reduced_loss = K.cumsum(loss)

    return reduced_loss

train_data = 10*np.random.rand(1600, 18,18,512)
validation_data = 10*np.random.rand(200, 18,18,512)

Y_train = np.random.rand(1600, 803)
Y_test = np.random.rand(200, 803)

#model
inputs = Input(shape=train_data.shape[1:])
x = Conv2D(803, (1,1), activation='sigmoid')(inputs)
predictions = GlobalAveragePooling2D(input_shape=train_data.shape[1:])(x)
model = Model(inputs=inputs, outputs=predictions)

model.summary()

model.compile(optimizer='adam', loss=test_loss,  metrics=['accuracy'])

model.fit(train_data, Y_train,
              epochs=200,
              batch_size=1,
              validation_data=(validation_data, Y_test))