收到S形函数的标签值1,该值超出[0,1)的有效范围

model = tf.keras.Sequential([
    # tf.keras.layers.Dense is basically implementing: output = activation(dot(input,weight) + bias)
    # it takes several arguments,but the most important ones for us are the hidden_layer_size and the activation function
    tf.keras.layers.Dense(hidden_layer_size,activation='relu'),# 1st hidden layer
    tf.keras.layers.Dense(hidden_layer_size,# 2nd hidden layer
    # the final layer is no different,we just make sure to activate it with softmax
    tf.keras.layers.Dense(output_size,activation='sigmoid') # output layer
])

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

### Training
# That's where we train the model we have built.

# set the batch size
batch_size = 100

# set a maximum number of training epochs
max_epochs = 100

def nn_batch_generator(X_data,y_data,batch_size):
    samples_per_epoch = X_data.shape[0]
    number_of_batches = samples_per_epoch/batch_size
    counter=0
    index = np.arange(np.shape(y_data)[0])
    while 1:
        index_batch = index[batch_size*counter:batch_size*(counter+1)]
        X_batch = X_data[index_batch,:].todense()
        X_batch.dtype='float32'
        print(X_batch)
        y_batch = y_data[index_batch]
        y_batch.astype(np.float64)
        counter += 1
        yield np.array(X_batch),y_batch
        if (counter > number_of_batches):
            counter=0

model.fit_generator(generator=nn_batch_generator(train_inputs,train_targets,batch_size),epochs=max_epochs,steps_per_epoch=300)
# fit the model
# note that this time the train,validation and test data are not iterable

# model.fit(train_inputs,# train inputs
#           train_targets,# train targets
#           batch_size=batch_size,# batch size
#           epochs=max_epochs,# epochs that we will train for (assuming early stopping doesn't kick in)
#           validation_data=(validation_inputs,validation_targets),# validation data
#           verbose = 2 # making sure we get enough information about the training process
#           ) 

test_loss,test_accuracy = model.evaluate(test_inputs,test_targets)
print('\nTest loss: {0:.2f}. Test accuracy: {1:.2f}%'.format(test_loss,test_accuracy*100.))
#inputs = tf.placeholder(tf.float32,[None,input_size])

错误是

  

InvalidArgumentError:接收到标签值1,该值超出有效范围[0,1)。标签值:1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1        [[{{node loss / output_1_loss / SparseSoftmaxCrossEntropyWithLogits / SparseSoftmaxCrossEntropyWithLogits}}]]

我认为S型函数的范围是[0,1],但是根据错误,它应该是(0,1)。 那我该如何解决呢?

xz7474 回答:收到S形函数的标签值1,该值超出[0,1)的有效范围

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3113257.html

大家都在问