深度学习初探-遇到的问题总结。

(个人学习之用,仅供参考。)

1:梯度弥散和梯度爆炸。

多层神经网络当中一个问题,

在三层中没问题,在多层中,sigmod函数的导数最大值为0.25,

如果用一个高斯分布来初始化权值(均值为0,标准差为1),然后还有,权重往往都是|w|<1.

然后亮点来了。

各位观众!4条S!!!!

wjf`(x)<0.25....

层数越多,连乘越小。。。。。。。。。。。。。。。。懂的吧。。。。。

梯度弥散=======>梯度消失。

梯度爆炸是另一种极端情况,情况较少。

解决办法:

1:激活函数换了,

sigmod换成ReLu,maxout

2:BN层

这里是引用下面这个博客,解释的很清楚,不再累述。、

https://blog.csdn.net/u013403054/article/details/78424095

2. TensorFlow测试不能用save

 Parent directory of model.ckpt doesn't exist, can't save.   ---------错误信息

原因是路径不对,前面+   ./是最快的方法

    saver.save(sess, './model.ckpt') #模型储存位置

 

可以了。

第二:试试这个方法

saver.save(sess, os.path.join(os.getcwd(), 'trained_variables2.ckpt'))

3.东西方手写数字不一样,,,准确率上有些区别,请参考这篇博客

https://blog.csdn.net/qq_38269418/article/details/78991649?utm_source=blogxgwz3

深度学习初探-遇到的问题总结。_第1张图片

3.

TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('

dtype是数组元素数据类型。

2种方法,第一个。test_data = test_data.astype('float64')

第二个,我用的直接str


def save_result(file_name, test_data,result):
    '''保存最终的预测结果
    input:  file_name(string):保存最终结果的文件名
            result(mat):最终的预测结果
    '''
   # test_data = test_data.astype('float64')

    f_result = open(file_name, "w")
    m = np.shape(result)[0]
    for i in range(m):
       # x1 = test_data[i, 1].astype('float64')
        #x2 = test_data[i, 2].astype('float64')
        f_result.write(str(test_data[i,1]) + '\t' + str(test_data[i,2])+'\t'+str(result[i, 0]) + "\n")
    f_result.close()

 

你可能感兴趣的:(机器学习,Python)