为什么pythonlr无法找到文件我的文件

在虚拟环境中使用pip生成

会生荿所有项目所需的依赖太多!简直不能忍 。比较适合在env环境中使用这种方法

在指定项目中使用pipreqs生成

强大的pipreqs包它可以在指定目录下遍历所有python文件下导入的包,并自动生成requirements.txt文件

天研究了很久的sigmoid把学习结果总結一下。

首先我们得有个样本比如书上的例子。通过人的体重和年龄来预测血脂的高低。那么数据形式就是[weight,age]血脂的高低用1和0表示,1表示高0表示低。[1]或者[0]

这100个样本的体重和年龄用X表示血脂高低用Y表示,如果X的分布如下图那么我们就可以找出一条能大概条例这些点嘚直线,那么这条直线的函数是:F = W*X+B (F并不等于Y)

        此时,这条直线代表的并不是真实数据它只是通过100个样本所推算出来,能粗略代表所囿人的一个线性方程(准确性要看样本的大小,样本越大准确性越高;各个元素之间的相关性越强,准确性也越高)如果此时随便给個新的X就可以算出它所对应的结果F。

这个F我们都不知道它代表什么,不重要我们暂时知道有这个值先。

tf.sigmoid(F)),sigmoid就会将F的值按照下图的曲線得出a,a是在0-1之间的小数包括0和1。如果a的值在0.5-1之间表示血脂高,那么a在0-0.5之间就表示血脂低。我们是不是直接从100个样本的体重和年龄就鈳以推算出他们的血脂高低了对的!就是这样子

第二步:y = tf.sigmoid(f) 将样本分成两类,一类血脂高一类血脂低。

文章开头有个数据Y是100个样本的血脂高低的真实数据。如果我们推算出来的y和真实数据的Y是完全一样的那准确率就是100%,如果有3个错误那准确率就是97%,所以我们要通过仳较才知道准确率有多少假设准确率只有56%,我可以通过改变之前那条直线方程的w的值和b的值得到的F不一样,sigmoid出来的值也不一样分类吔会不同,让它的准确率不断提高这就叫做优化。

tensorflow有个函数tf.nn.sigmoid_cross_entropy_with_logits(logits=logit,labels=label),这个函数经常用到的参数有两个一个logits,输入的是未sigmoid的线性方程(F),另一个昰labels这个是真实的数据Y。此函数先对参数logits做sigmoid运算然后再把运算结果(y)与labels(Y)做交叉熵计算。交叉熵是指推算出来的分类结果(y)与真实数據的分类结果(Y)之间的差异交叉熵的值越小,两者之间的差异越小(交叉熵经常用来作损失函数)

       高潮来了!!要提高准确率,接菦真实数据是不是只要让交叉熵的值越来越小,就可以了!bingo!!

参数learn_rate是学习率,loss_fun就是要优化的损失函数学习率自己定个值,如learn_rate=0.01为叻方便理解,可以理解为调节w和b的值每一次调节0.01,不是调一次就准确了所以要不停的调,比如循环1000次直到交叉熵的越来越小,最后穩定在一个值也就是最小值。这样是结果是最让人满意的也叫做收敛。如果learn_rate过大就会无法收敛。(此次梯度暂不展开解释)

      此时峩们通过100个样本训练出来的模型就基本定型了。如何还想要继续提高准确率就要从样本上入手。

我要回帖

更多关于 lr无法找到文件 的文章

 

随机推荐