![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
月下花弄影
登山,高一步则多一层境界
展开
-
python中图像读取,操作和保存的四种库函数:plt, cv2, pil, skimage
本文主要介绍python中四种读取,操作和保存图像的库函数。分别是:matplotlib.pyplot. 简称为plt。可以用于论文画图,类似于matlab的作图工具。保存图像很方便。官方例子地址。cv2。是opencv的python版本,有众多的图像处理函数。读取图像很方便。官网地址PIL.Image, 简称为pil。是一个比较方便的库,pytorch中有直接接口用于交互,因此对于pytorch用户来说,这是一个很好的选项,在自己的程序中尽量使用这个函数来进行操作。它也提供众多的图像处理函数。可以原创 2020-08-02 11:08:48 · 1264 阅读 · 0 评论 -
python中如何使用None增加数据维度
这里,我想说关于数据维度我们要注意两个东西。当我们进行切片操作时,我们的数据维度时丢失的。这一点要格外注意。有时候我们希望数据保持一定的维度,但是数据不变,这是可以实现的。且不同的平台或者库函数都有不同的方式,我们这里使用none来表示。首先说明第一点,切片操作时,我们的数据维度丢失了,如下图所示。其次我们可以使用none来增加维度,还可以将其和切片操作合并起来。虽然数据维度在变化,...原创 2019-12-04 15:11:57 · 2498 阅读 · 0 评论 -
利用神经网络解决非线性回归问题
问题描述现在我们通常使用神经网络进行分类,但是有时我们也会进行回归分析。如本文的问题:我们知道一个生物体内的原始有毒物质的量,然后对这个生物体进行治疗,向其体内注射一个物质,过一段时间后重新测量这个生物体内有毒物质量的多少。因此,问题中有两个输入,都是标量数据,分别为有毒物质的量和注射物质的量,一个输出,也就是注射治疗物质后一段时间生物体的有毒物质的量。数据如下图:其中Dose of...原创 2018-12-15 15:59:09 · 9719 阅读 · 7 评论 -
python + numpy 学习笔记 cs213n KK assignment
python 函数 enumerate:遍历数据对象,返回索引,同时给出数据和数据下标classes = [‘plane’, ‘car’, ‘bird’, ‘cat’, ‘deer’, ‘dog’, ‘frog’, ‘horse’, ‘ship’, ‘truck’]for y, cls in enumerate(classes)print(y)print(cls)np.flatnonz...原创 2018-12-04 16:26:25 · 785 阅读 · 0 评论 -
【已解决】docker + GPU + tensorflow:Tensorflow cannot open libcuda.so.1
我想在docker中使用GPU + tensorflow + keras + 一些其他的环境。于是下载了 docker pull ufoym/deepo的镜像。在docker run等命令后import tensorflow出现错误,错误如题。查过很多资料,但没能解决。最后采取了ufoym/deepo网址的启动方法,将docker run 改成nvidia-docker run,这样才可以...原创 2018-11-26 19:17:33 · 2560 阅读 · 3 评论 -
Keras: fit_generator中如何构建一个generator?
为何使用fit_generator?在深度学习中,我们数据通常会很大,即使在使用GPU的情况下,我们如果一次性将所有数据(如图像)读入CPU的内存中,内存很有可能会奔溃。这在实际的项目中很有可能会出现。如果我们使用fit_generator则可以解决这个问题:1)fit_generator的参数中有一个是连续不断的产生数据的函数,被称为generator。2)至于这个generator是怎...原创 2018-11-04 04:22:40 · 5171 阅读 · 9 评论 -
python: 列表 + 字典 + 向json文件追加数据
我原创 2018-11-04 01:35:22 · 23457 阅读 · 1 评论 -
【已解决】docker + opencv + 'ascii' codec can't encode charactersordinal not in range(128)
问题描述:1、在docker + opencv + 读取有名字中中文的图片2、python 3.6环境(不存在网上说的字符格式问题)最终原因定位:docker的问题。在docker中进行一定的修改即可修改如下:原文地址第一步:打开文件etc/profile 命令: vi etc/profile第二步:在文件最后一行添加:export LANG=“C.UTF-8”注使用vi的命令1...原创 2018-10-30 19:59:24 · 450 阅读 · 4 评论 -
python+numpy按行求一个二维数组的最大值
问题描述:给定一个二维数组,求每一行的最大值返回一个列向量如:给定数组【1,2,3;4,5,3】返回[3;5]import numpy as npx = np.array([[1,2,3],[4,5,3]])# 先求每行最大值得下标index_max = np.argmax(x, axis=1)# 其中,axis=1表示按行计算print(index_max.shape)...原创 2018-09-30 12:08:58 · 13466 阅读 · 2 评论 -
python+numpy创建“真正准确的”一维阵列: (1,)而不是(n, )
numpy好像没有直接的方法建立一维阵列import numpy as npnumber = np.array((1,10))print(number.shape)number = np.zeros(10)print(number.shape)可以看到这里并不能生成一维数据。那么怎样才能生成一维阵列呢?我们需要借助一个比较常用的函数:reshape我们注意到这里reshape...原创 2018-10-08 22:53:51 · 10053 阅读 · 0 评论 -
【已解决】Python: Opencv: error: (-215) size.width>0 && size.height>0 in function cv::imshow
利用cv2.imread()时,当出现这个错误时,请检查以下信息:是否有拼写错误是否有这个图片是否添加了后缀名是否是绝对路径是什么系统?考虑将单斜杠改成双斜杠如:image_data = cv2.imread('D:\\lab\\AgriculturalDisease_trainingset\\images\\00c5c908-fc25-4710-a109-db143da23112...原创 2018-09-26 17:07:52 · 16815 阅读 · 2 评论 -
【详解】CS231n assignment1KNN中不使用循环计算距离:从原理到程序
本文主要讲述不使用循环结构来计算两个矩阵的欧氏距离, 设训练集矩阵为train,size为num_train * num_features,设验证集矩阵为validate,size为num_test,num_features。因此我们计算每一个验证集样本到训练集样本的距离,就是将训练集矩阵train的某一行拿出来与验证集矩阵validate的某一行计算欧式距离。这在两层循环中就是这么做的,相比...原创 2018-12-08 13:13:20 · 1383 阅读 · 5 评论 -
神经网络解决XOR(抑或)问题
引言神经网络用于解决XOR问题也算是一个神经网络的一个重大突破。首先,我们需要知道什么是抑或问题,这里我就不多说了。抑或问题有4个输入,1个输出。输入是二维的,且每维要么是0要么是1,输出是一维的,要么是0要么是1.当输入为0,0或者1,1时,输出为0,当输入为1,0或者0,1是输出我1.各位可以自行将其画到直角坐标系中,这是用线性分类器无法解决的。目标本文想搭建一个神经网络架构来训...原创 2018-12-15 15:36:38 · 8740 阅读 · 3 评论 -
pytorch使用 to 进行 类型转换
在程序中,有多种方法进行强制类型转换。本博文将介绍一个非常常用的方法:to()方法。我们通常使用它来进行GPU和CPU的类型转换,但其实也可以用来进行torch的dtype转换。常见方法:tensor.to(‘cuda:0’)先看官网介绍:**Performs Tensor dtype and/or device conversion. A torch.dtype and torch.d...原创 2019-08-31 18:16:24 · 16282 阅读 · 0 评论 -
【python】频域滤波
频域滤波主要分为四个步骤1)计算源图像的傅里叶变换结果2)选择并计算滤波器3)将1得到的结果和2的结果相乘4)对3的结果进行逆傅里叶变换本文提供所有资源下载(自带图片):下载地址结果展示:代码1:计算滤波器import numpy as npdef high_pass_filter(img, radius=80): r = radius rows, co...原创 2019-05-29 17:25:29 · 6651 阅读 · 4 评论 -
python + assert 如何断言两个高维(包括二维)矩阵中每一个元素都相等
在上一篇博客,我实现了如何断言一个向量相等这篇博客,其实一模一样,将一个高维矩阵变成一个向量之后再利用上次的方法就可以了。其实,断言向量,也就是将向量变成一个个数就行了。这是不变的原理。import numpy as npa = np.zeros((3, 4))b = np.zeros((3, 4))a = a.flatten()b = b.flatten()assert al...原创 2019-05-06 13:34:20 · 1184 阅读 · 0 评论 -
python+ assert 断言两个向量的所有元素相等
a = [0, 2, 3]b = [0, 2, 3]assert all(a[i] == b[i] for i in range(len(a))), 'They aren\'t always equal'b = [0, 2, 2]assert all(a[i] == b[i] for i in range(len(a))), 'They aren\'t always equal'原创 2019-05-06 13:33:43 · 3569 阅读 · 0 评论 -
【pytorch+全连接层】mnist分类问题【尽可能的高准确率,99%以上】
要求使用pytorch,使用全连接层,而不是用卷积层,要求有两层隐含层尽可能提高准确率本博客要求使用GPU,否则CPU可能需要半天时间才能运行出来结果要求下载CSV格式的mnist数据(可以在我上一篇博客里面下载)注意:全连接层也是可以将准确率训练到99%以上的,不要以为只有卷积层才可以。毕竟mnist是一个简单的数据集。在上一篇博客中,我用纯python写了mnist的分类,在小...原创 2019-04-19 08:40:24 · 5963 阅读 · 2 评论 -
【python】利用两层神经网络(网络必须用类)来训练mnist数据(要求准确率90%以上)
要求:用python自建一个class类,不能使用其他高级库函数,如pytorch,tensorflow,含有两个隐含层,隐含层数量可以指定。准确率达到90以上。画出学习曲线:损失曲线核准确率曲线。本程序在jupyter下完成。共三个代码:程序可直接下载(包含数据)下载地址1.主代码(自建类函数)import numpy as npimport matplotlib.pyplo...原创 2019-04-15 20:19:13 · 1701 阅读 · 0 评论 -
python的两种格式化输出:% 和 format
例子: 我们想打印这样的一个语句:今天是xx 年 xx月 xx日与C语言类似,第一种方法 % 就是用来格式化字符串的。第二种方法就是用format进行操作两种方法各有好处。例子:第一类方法使用百分号,百分号后使用s,f等来控制字符串类型第二类方法主要使用format,并结合{}来使用,大括号内部可以使用字符串来进行控制。看个人兴趣,决定使用,一般来说,百分号可以少些一点代码...原创 2019-01-16 20:38:32 · 5274 阅读 · 0 评论 -
pytorch,tensorflow,matplotlib.pyplot 读取图片的及其注意事项
在图片的深度学习中,我们经常需要画出图片。当我们需要在多种框架中转换时,尤其需要注意图片的格式问题。matplotlib.pyplot.imshow()这个函数的格式是 Height, Width, Channel, 特别需要注意这里channnel的位置。输入的数据范围有两个0到1的小数,或者0到255的整数。所以需要注意这想要展示图片的数据格式官方网址pytorch中的torch...原创 2019-01-16 19:39:42 · 2002 阅读 · 0 评论 -
python+ tensorflow : num_elements()
方法:num_elements()功能:返回一个变量的规模,也就是该变量的所有元素的数量。这个变量应该是该类型:tensorflow.python.framework.tensor_shape.TensorShape也可以看成是tensorflow中tensor数据类型的get_shape()的返回类型代码例子:import tensorflow as tfimport numpy...原创 2018-09-25 14:51:11 · 1737 阅读 · 0 评论 -
在python中矩阵维度, (a,)和 a 有什么区别?
1、在python中矩阵维度, (a,)和 a 有什么区别?测试:import numpy as nptrainx = np.linspace(-1, 1, 10)print(trainx.shape)print(trainx[0].shape)print(*trainx.shape)输出:(10,) 和 (), 10...原创 2018-09-19 15:45:08 · 3415 阅读 · 0 评论 -
详解:利用最近邻法对图像进行分类
试验介绍本算法利用最近邻法利用cifar-10图像数据库进行测试,对未知图像进行分类整体步骤1、算法介绍:本小节介绍最近邻方法的理论及其相关知识 2、数据库和数据:数据库的内容和单个数据的表现 3、程序:利用程序实现对图像的分类 4、结果展示算法介绍自己写了一下英文版的算法总结,如下图: 数据库与数据先问一个问题:图像的二维数据怎么储存的,以及图像的grou...原创 2018-09-07 15:45:57 · 3289 阅读 · 0 评论 -
python+opencv颜色空间的转换命令与图像的按位与操作
# usr/bin/env python# coding: utf-8# 2018年6月15日07:41:23# 2018年6月15日23:16:01# python_4# 目标:# 1、学会进行颜色空间的转换,特别是两类重要的颜色空间转换,BGR到gray,BGR到Hsv# 这个目标可以利用一行代码解决# 颜色空间部分以后会讲到。# 2、在视频中追踪一个颜色的物体。步骤:...原创 2018-06-15 23:27:38 · 976 阅读 · 0 评论 -
快速了解caffe应用于手写数字识别(代码可运行)(CPU+python环境)(适合新手)
很多时候,我们希望可以快速了解某些知识的基本情况,在深度学习中,我们更应该如此,然后知道我们需要在哪些方面注意。本文在一片文章之中,教你设计一个在caffe中利用深度网络进行手写数字识别,让你快速了解某些重点知识。所有程序我全部测试运行,没有问题。最重要的是,本文开篇即有一个本文学习的内功心法,以帮助大家快速进入状态。几乎所有代码,我都进行了注释。我也是小白,刚刚开始,相信适合和我一样的初学者。正...原创 2018-06-08 22:00:52 · 559 阅读 · 0 评论 -
python + matplotlib.pyplot图形基本操作和部分精细化操作
第一步:显示一张图片第二步:在同一坐标下画出两条线(一些基本命令)# /usr/bin/env python# coding: utf-8# 2018年06月01日21:53:46# 学习python中matplotlib的笔记# 参考网站1: http://cs231n.github.io/python-numpy-tutorial/#matplotlib# 参考网站2: https:...原创 2018-06-01 23:25:53 · 3854 阅读 · 0 评论 -
python下读取并展示raw格式的图片
raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件)import numpy as npimport cv2img = cv2.imread('cat.jpg')# 这里需要我们在当前目录下放一张名为cat.jpg的文件img.tofile('cat.raw')#利用numpy中array的函数tofile将数据写入文件#这时我们...原创 2018-06-23 17:03:20 · 32196 阅读 · 32 评论 -
python+opencv计算代码运行时间:time库和opencv自带方法getTickCount
import cv2import time############################## 利用opencv的两个函数进行时间耗费计算# cv2.getTickCount()记录当前时间,cv2.getTickFrequency()是时钟周期start = cv2.getTickCount()# 记录当前时间,以时钟周期计算sum = 0for i in range(1...原创 2018-06-12 22:33:03 · 6405 阅读 · 0 评论 -
python+opencv像素的加减和加权操作
# 目标:# 1、在图像上进行算术操作,如加减以及按位操作# 2、将会学会使用cv2.add(),cv2.addWeights()# 参考网站:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_image_arithmetics/py_image_arithmetics.html#image-arithmeticsim...原创 2018-06-12 21:38:52 · 2812 阅读 · 0 评论 -
分别利用opencv和matplotlib.pyplot来展示图片
众所周知,opencv是一个图像算法库,理论上讲我们应该使用opencv来展示图片,但本文要告诉你,什么时候我们使用matplotlib.pyplot来画图:需要对图像进行一些操作的时候(如看一下某些区域的位置等)# usr/bin/env python# coding: utf-8# 2018年6月11日23:17:03# 目的:比较两个展示图片的方式区别# import numpy ...原创 2018-06-11 23:40:11 · 1618 阅读 · 0 评论 -
opencv+python:图像的像素,属性,通道
本篇博客开始学习python下的opencv,欢迎志同道合的同学一起学习讨论。#! usr/bin/env python# coding:utf-8# for opencv# 2018年6月11日21:23:18# 参考网址:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_basic_ops/py_basic_op...原创 2018-06-11 23:12:27 · 10246 阅读 · 0 评论 -
python+numpy 随机数的生成,正态分布,0-1分布,均匀分布及随机数种子
#! usr/bin/env python# coding: utf-8# 使用numpy中的随机函数 学习笔记# 2018年06月04日11:38:43 北京昌平import numpy.matlibimport numpy as np# 说明,每块代码运行时,请将其他模块注释:# 注释方法1:选中要注释的部分,然后同时按住ctrl和/按键# 注释方法2:采用字符注释,...原创 2018-06-04 21:12:41 · 78389 阅读 · 2 评论 -
python+os利用os.getcwd()和os.chdir提高算法的移植性
背景介绍:现在很多博客上的代码难以直接运行,即使是一些小程序,很有可能是路径设置不正确功能介绍:我们可以利用os库的两个函数进行路径的操作,从而使我们工作的环境变量与电脑不相关代码实例:# !usr/bin/env python# coding: utf-8import os# 为了获得当前绝对路径,可以使用os.getcwd()函数currentRoot = os.getcwd()...原创 2018-06-09 01:11:07 · 1240 阅读 · 0 评论 -
python+opencv:定义放缩图像尺寸的三种方法:元组,源图像,系数
# usr/bin/env python# coding: utf-8# 2018年6月15日23:29:13# 2018年6月16日10:16:49# python_5import cv2import numpy as npimg = cv2.imread('cat.jpg')# 对图像进行放缩# 第一种方法:直接指定使用元组指定新图像的尺寸resImg1 =...原创 2018-06-16 14:19:57 · 5036 阅读 · 0 评论 -
python+opencv 简单阈值算法
本文先了解一个简单阈值函数,以了解一个阈值算法的具体参数。 然后比较不同阈值函数的区别。同样的,先用一副图说明本文重要大纲: #! usr/bin/env python# coding: utf-8import cv2img = cv2.imread('cat.jpg')img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 先将图像矩阵进行...原创 2018-06-24 16:13:52 · 2841 阅读 · 0 评论 -
python+numpy:矩阵array创建
#! usr/bin/env python# coding: utf-8import numpy as npimport cv2# create array from python list and so ona = [1,2,3]print ('The type of \'a\' is ' + str(type(a)))a = np.array(a)print('The t...原创 2018-08-11 18:37:18 · 2833 阅读 · 0 评论 -
python+os根据文件名自动生成文本
有时我们有很多文件(如图片),我们需要对每一个文件进行操作。 我们还需要一份文件的名字来进行遍历,这时我们首先需要建立一份文件名单,有时还会对文件名做一定的筛选,如我们只选择jpg格式的图片。 本文就是利用一个文件夹下的几张图片完成这些操作:把所有文件名写入到一个文件中。 这可以进一步用来遍历处理数据#! usr/bin/env python# coding: utf-8# 为了...原创 2018-07-22 07:47:05 · 2078 阅读 · 0 评论 -
Python+opencv利用sobel进行边缘检测(细节讲解)
#! usr/bin/env python# coding:utf-8# 2018年7月2日06:48:35# 2018年7月2日23:11:59import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('number.jpg',0)# 其中,0表示将图片以灰度读出来。###...原创 2018-07-03 00:00:07 · 36776 阅读 · 11 评论 -
python+opencv均值滤波,高斯滤波,中值滤波,双边滤波
滤波算法主要包括均值滤波,高斯滤波,中值滤波和双边滤波。 每种算法都有自己的特点,建议从原理上了解每种算法的优缺点。上图给出简洁版的总结。 以下是代码:import numpy as npimport cv2import matplotlib.pyplot as plt######## 四个不同的滤波器 #########img = cv2.imread('cat...原创 2018-06-26 23:05:30 · 81249 阅读 · 24 评论