Python Softmax输出仅返回1和0?

Python Softmax输出仅返回1和0?,python,machine-learning,keras,neural-network,Python,Machine Learning,Keras,Neural Network,我的卷积神经网络在softmax输出(out1)上只返回1和0,有人知道为什么吗 def构建(自): inp=输入(self.obs\u形状) conv0=Conv2D(32,2,1,padding=“same”,activation=“relu”)(inp) drop0=MaxPool2D((2,2))(conv0) conv1=Conv2D(64,3,2,padding=“same”,activation=“relu”)(drop0) drop1=MaxPool2D((2,2))(conv1

我的卷积神经网络在softmax输出(out1)上只返回1和0,有人知道为什么吗

def构建(自):
inp=输入(self.obs\u形状)
conv0=Conv2D(32,2,1,padding=“same”,activation=“relu”)(inp)
drop0=MaxPool2D((2,2))(conv0)
conv1=Conv2D(64,3,2,padding=“same”,activation=“relu”)(drop0)
drop1=MaxPool2D((2,2))(conv1)
展平=展平()
hid0=密集(128,激活='relu')(平坦)
hid1=密集(256,激活='relu')(hid0)
hid=密集(128,激活='relu')(hid1)
out1=密集(自动作计数,激活='softmax')(hid)
out2=密集(1,激活='线性')(hid)
模型=模型(输入=[inp],输出=[out1,out2])
compile(optimizer=tf.keras.optimizers.Adam(lr=self.lr),
损失=[self.actor_损失,“mse”])
回归模型
定义参与者损失(自身、实际、预测):
actions=tf.cast(y_实际值[:,0],tf.int32)
返回=y_实际值[:,1]
掩码=tf.1\u热(动作、自我动作\u计数)
logps=tf.math.log(tf.boolean\u掩码(y\u pred,掩码)+1e-3)
熵=-tf.math.reduce_sum(y_pred*tf.math.log(y_pred))
return-tf.math.reduce_sum(logps*returns)-0.0001*熵
模型=模型(输入=[inp],输出=[out1,out2]) 看看上面,只有两个输出。 因此,您的函数
build
是锁定输出的数量, 所以只能得到1或0

一句话:你需要改变你的模型

对不起,我的英语不好

model=model(输入=[inp],输出=[out1,out2]) 看看上面,只有两个输出。 因此,您的函数
build
是锁定输出的数量, 所以只能得到1或0

一句话:你需要改变你的模型


对不起,我的英语不好

tf.keras.loss.categorical\u crossentropy
有问题吗?没有,但这是我发现能够按照我的意愿使用返回的方式
tf.keras.loss.categorical\u crossentropy
有问题吗?没有,但这是我发现能够按照我想要的方式使用返回的方式