请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

tf.argmax &logits

图片描述
老师,请教您如下问题:
1.one-hot编码中用多少位表示原来y中的一个值,比如y的类别有2个猫和狗,
猫就是10 ,狗就是01,这样一个类别占用了2个数字的位置,也就是2个字符位表示,y有多少个类别one-hot编码就用多少位01字符表示么
2.y做one-hot编码前是一维的向量吧,y通过那个cross_entropy函数做了one-hot编码后的shape呢?
3.prediction=tf.argmax(logits,1),
因为argmax的第二个参数是1,所以logits肯定是一个数组,至少是二维或者多维数组,如果logits是一个mxn的数组,那么这个argmax返回的是一个长度为m的一个向量,这个向量中的每个元素是logits数组每一列最大值对应的索引,这样理解的对么?
4.假设第3步我理解的正确,但是argmax返回的向量中元素是索引值,怎么能和ne-hot编码后的y进行equal的?量纲不匹配呀?
5.这个网络结构每层的输出shape是多少?
输入层x的shape Nonex28x28
假设输入层与第一个隐藏层之间的权重矩阵是W1是mxn的矩阵,b1是Bias
第一个隐藏的输出的值和shape是多少,怎么算的?
假设输入层与第二个隐藏层之间的权重矩阵是W2是axb的矩阵,b2是Bias
第二个隐藏的输出的值和shape是多少,怎么算的?
假设第二个隐藏层和最后的输出层之间的权重矩阵是W3是gxh的矩阵,b3是Bias
输出层logits的值和shape怎么计算的,是多少

正在回答 回答被采纳积分+3

1回答

正十七 2022-08-03 10:12:16
  1. 是的,但只有2类的时候可以不用one-hot, 直接用一个一个数字就可以。

  2. 因为你用了sparse_categorical_cross_entropy函数,所以在函数外面不用做one-hot. y的shape本来是(batch_size, 1) (或者(batch_size,), 有点记不清了),做了one-hot后就是(batch_size, num_categories)

  3. 对,实际上你自己起个colab跑一个example就可以得到确认,不用把老师当成人形编译器 :)

  4. 如2,y在sparse_categorical_cross_entropy外没有做one-hot操作,所以可以做equal

  5. 你的code里面输入是(None, 28, 28),后面接dense layer会只对最后一维做dense,所以需要你把输入reshape成(None, 784),然后接dense,就能按照wx+b去算了。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号