tensorflow 训练最后预测结果为一个定值,可能的原因
2024-10-07 20:12:51
训练一个分类网络,没想到预测结果为一个定值。
找了很久发现,是因为tensor的维度的原因。 注意:我说的是我的label数据的维度。
我的输入是:
y_= tf.placeholder(tf.int32,[None,1]) #维度:(batchsize,1)
我使用的损失函数:
loss = -y_*log(pred)
pred = tf.softmax(wx+b) #维度:(batch_size,10034)
所以我需要将y_的 维度转化为(batch_size,10034)
我使用的是
y__ = tf.one_hot(y,10034) #维度是:(batch_size,1,10034),而不是我们的预期:(batch_size,10034)
显然这时有问题的,所以才会在坑中转了好久。
tf.one_hot()的输入数据为一维数组。
正确方法:
y1 = tf.reshape(y_,[-1]) # 变成一维数组(batch_size,)
y__ = tf.one_hot(y1,10034) # (batch_size,10034)
loss = tf.reduce_mean(-tf.reduce_sum(y__*log(pred),reduction_indices=[1]))
最新文章
- 那些年一起用过的iOS开发利器之CocoaPods
- Java + 腾讯企业邮箱 + javamail + SSL 发送邮件
- StringBuffer与StringBuilder有什么区别
- CSS 的class属性居然可以并(有点像并,有点像与)操作
- win7录屏工具
- 10款让人惊叹的HTML5/jQuery图片动画特效
- 问题 K: 【USACO2012Feb】植草 {Bronze题2}
- 在.NET连接MySQL以及封装好的MySQLHelper.cs
- Thinkphp kindeditor 内容转义
- Java读取文件夹大小的6种方法及代码
- Java POI导入Excel文件
- 将使用netTcp绑定的WCF服务寄宿到IIS7上全记录 (这文章也不错)
- Wap touch flispan demo
- SQL Server 中@@IDENTITY的用法
- 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程
- Extjs mvc
- IE无法获得cookie,ie不支持cookie的解决办法,火狐支持
- python学习日记(常用模块)
- 2.9 while循环
- maven settings.xml配置优化