环境配置,图像处理,程序打包笔记

conda create -n name python=3.6

conda activate name      conda deactivate

conda info --envs     #查看环境

conda env remove --name torch1.2  

#删除torch1.2

numpy 1.19.2  

mkl 2020.2

scipy 1.5.2

skimage 0.17.21

3.x系列没有raw_input  换成input等效

path = input(u"中文path")

img = plt.imread(path)

skimage下

读取内部:img = data.hubble_deep_field()

读取外部:img = io.imread('./cat.png')

 Python skimage 库

from skimage import io, data

img = data.chelsea()

io.imshow(img)

io.show()

print(type(img))    # 类型

print(img.shape)    # 形状

print(img.shape[0]) # 图片宽度

print(img.shape[1]) # 图片高度

print(img.shape[2]) # 图片通道数

print(img.size)     # 显示总像素个数

print(img.max())    # 最大像素值

print(img.min())    # 最小像素值

print(img.mean())   # 像素平均值

函数名     功能                    调用格式

figure  创建一个显示窗口    plt.figure (num=1,figsize=(8,8)

imshow  绘制图片              plt.imshow(image)

show    显示窗口                plt.show()

subplot     划分子图           plt.subplot(2,2,1) #用在imshow之前

title   设置子图标题(与subplot结合使用)    plt.title('origin                                                                               image')

axis    是否显示坐标尺         plt.axis('off')

subplots    创建带有多个子图的窗口     fig,axes=plt.subplots                                                                  (2,2,figsize=(8,8))

ravel   为每个子图设置变量           ax0,ax1,ax2,ax3=axes.ravel()

set_title   设置子图标题(与axes结合使用)   ax0.set_title('first                                                                                window')

tight_layout    自动调整子图显示布局           plt.tight_layout()

图像的批量处理

skimage.io.ImageCollection(load_pattern,load_func=None)

批量操作地址

str='E:\data\online\orign\initial\*.bmp;'\

    'E:\data\online\orign\metaphase\*bmp'\

    'E:\data\online\orign\evening\*.bmp;'

对data中宇航员图片进行裁剪

from skimage import io, data

img = data.astronaut()

partial_img = img[50:150, 170:270, :]

io.imshow(partial_img)

io.show()

旋转90°

    img1 = transform.rotate(img,90)

matplotlib 里 cm  去查询最新的指令

正常摩擦磨损:正常磨损时磨粒的形态特征是一些具有光滑表面的鳞片状颗粒,其特征是长度为0.5~15um甚至更小,厚度为0.15~1um的不规则碎片。

切削磨损:切削磨损磨粒的形态类似车床加工产生的切屑,为卷曲的细带状,只是尺寸在微米数量级,宽约2~5um,长约25~100um

滚动疲劳磨粒:

疲劳剥落磨粒:碎屑表面光滑,边缘不规则,呈片状, 磨粒中的最大粒度可达100um

球状磨粒:比较小,直径为1~5um

层状磨粒:被滚压面碾压而形成的薄片,这类磨粒的表

面常带有一些空洞。磨粒尺寸为20~50um, 厚度约为1um。

严重滑动磨损:残渣呈大颗粒脱落,一般为片状或块状。这类磨粒表面有划痕,有直的棱边,磨粒的尺寸在20um以上。

滚动-滑动复合磨损

制作tensorflow下record文件

writer = tf.io.TFRecordWriter('1_and_2_train_onehot.tfrecords')  #这个指令创建了单引号里的文件,但是单引号里代表了地址,该指令没有明确表示地址,说明该文件是在该python程序所在的路径下创建了文件,我们想要在别的路径下创建,需要改变路径

开启python console(控制台)

Run→Edit Configurations→Run with python console

tensorboard --logdir=你创建的文件夹名字

ck     http://LAPTOP-IQ4DRNNV:6006/

train loss 不断下降,test loss不断下降,说明网络仍在学习

train loss 不断下降,test loss趋于不变,说明网络过拟合

train loss 趋于不变,test loss不断下降,说明数据集问题

train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目

train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题

1.适当的正则化和降维

        正则化是用来解决模型过拟合问题的一个很重要的手段,比如通过增加一个正则项,并且人为给定一个正则系数lambda,进行权重衰减,将一些相关性不大的特征项的参数衰减到几乎为0,相当于去掉了这一项特征,这跟降维类似,相当于减少了特征维度。而去掉基本无关的维度,那么就避免了模型对于这一维度特征的过分拟合。还有在神经网络两个层之间增加Dropout和Normal等,也起到了抑制过拟合的作用。

2.适当降低模型的规模

        过拟合很重要的一个原因也是模型的复杂度太高,就像一亩地只种了一棵小麦,那么其他地方不种就会长杂草,于是就会过拟合了一些噪声。所以,除了正则化手段以外,适当减小模型的规模也是很重要的,尽量让神经网络结构的假设空间与预期目标模型需要存储的信息量相匹配。

3.获取更多的数据集

        这是终极解决方案,深度学习就是在有大量数据的基础上发展起来的。深度学习的三件套:数据、模型和硬件。模型可以直接拿来用,硬件可以花钱买,但是数据需要一点一点去收集,而且很多问题的解决就依赖于大量的数据,没数据就没有一切。

pip install PyInstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

Pyinstaller 先将主函数打包,形成一个 .spec 的文件,通过编辑该文件,将所有要打包的程序名字都添加在合适的位置,然后还可以修改别的设置,例如更换图标(.icon)、是否展示控制台、修改名字等。如果原代码有引入图片文件,需要将图片转换为一段代码(pyinstaller只打包 .py 文件),然后在要使用图片的代码里再将图片代码引入,然后打包所有 .py 文件。

你可能感兴趣的:(python)