python中的小坑及安装包时问题小汇总

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28888837/article/details/86217435

python中的小坑及安装包时问题小汇总

标签: python


1.python中二维数组:

二维数组我之前一维使用list然后*某个数字,这样就行了,比如:

a = [[1]*3]*2  

从输出结果看确实没什么问题:[[1, 1, 1], [1, 1, 1]]

但是当你修改其中某个值的时候,比如a[0][1] = 4,你会发现最后a变成了[[1, 4, 1], [1, 4, 1]],所以这种声明方法有问题。为什么出现这个问题,是因为[]*2这种拷贝是浅拷贝,拷贝完大家指向的还是同一块区域。详细原理在这个地方就不分析了,可以参考pyton标准库,如果在运行包含二维数组的程序时出现了和预期不符的问题,可以先从这个方向考虑一下,免得到处找bug。

那么我们如果想声明二维数组该怎么做呢,可以直接或者间接声明如下:

方法1 直接定义

a = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

方法2 间接定义

a = [[0 for i in range(3)] for i in range(3)]  

参考

2.python中reshape

reshape是numpy中的一个函数,用起来很好用,但是你要是一不注意可能就用错了地方,主要是在神经网络中你的数据格式可能和程序中的不一样,所以你可能想要改变下形状,比如你的数据是[[1,2,3],[4,5,6]]``2行3列,其中2代表特征个数,而3代表样本个数,所以上面数据代表3个样本每个样本特征分别为(1,4),(2,5),(3,6)但是程序要求数据要是3行2列,也就是行代表样本个数,列为特征,所以应该变为[[1,4],[2,5],[3,6]],但是如果你用reshape的话原始数据reshape为3,2,那么数据变成了[1,2][3,4],[5,6],所以和预期不符,这里应该用转置,所以当你神经网络各个地方都没问题,你可以考虑下是否数据转换的时候行列出了问题。

安装python 3.5

conda create -n py35 python=3.5 anaconda

参考

pip安装时速度慢

修改下载源为阿里的,参考

安装tensorflow出现问题

尝试一下如下命令: pip install tensorflow==1.5 参考

import tensorflow时出现Cannot uninstall ‘html5lib’. It is a distutils

Cannot uninstall ‘html5lib’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

删除 %pythonpath%\Lib\site-packages下的html5lib-0.999-py3.5.egg-info.

参考

安装opencv

lfd下载whl包,记着版本对应即可。参考

ImportError: numpy.core.multiarray failed to import

参考

安装caffe

建议python安装3.5版本,要不然不好安装,官网方法参考,但是下载资源是下载不了,所以参考,要花一个积分下载资源,依赖包我没有安装,但是也没问题,可能conda安装py35的时候很多包都装的原因,如果不想花积分可以去我的github上下载我的github地址

安装pytorch

参考,记得安装前面方法修改源,要不然安装速度慢,甚至安装不上去。

直接安装全部的深度学习环境 (扩展知识)

使用docker中有一个叫做deepo的,参考

猜你喜欢

转载自blog.csdn.net/qq_28888837/article/details/86217435