python
sjtu_leexx
这个作者很懒,什么都没留下…
展开
-
Python list和numpy array的存储和读取方法
numpy array存储为.npy存储:import numpy as npnumpy_array = np.array([1,2,3])np.save('log.npy',numpy_array )读取:import numpy as npnumpy_array = np.load('log.npy')运行结果: list存储为.txt存储:list...原创 2018-04-25 16:09:43 · 41186 阅读 · 4 评论 -
python list拷贝赋值问题
在python中,用等号或者append方法进行list的赋值,实际上是将原list的引用赋给了新的变量,在后续使用append方法改变这两个list中的任何一个时,另一个也会同时改变:b = [0,1,2]a = bb.append(3)print(a)print(b)>>a = [0,1,2,3]>>b = [0,1,2,3]a.appe原创 2019-01-31 20:15:39 · 2339 阅读 · 1 评论 -
tensorflow在函数中用tf.Print输出中间值的方法
tensorflow由于其基于静态图的模式,导致写代码的时候很难调试,除了用官方的调试工具外,最直接的方法就是把中间结果输出出来查看,然而,直接用print函数只能输出tensor变量的形状,而不是数值,想要输出tensor的具体数值需要用tf.Print函数。网上有很多关于这个函数使用方法的说明,这里简要介绍:Print( input_, data, message=N...原创 2018-11-27 18:40:44 · 36977 阅读 · 10 评论 -
pytorch下只打印tensor的数值不打印出device等信息的方法
torch.Tensor类型的数据loss和acc打印时 ,如果写成以下写法print('batch_loss: '+str(loss.data)+'batch acc: '+str(acc.data))则不仅会打印出loss和acc的值,还会打印出device信息和 tensor字样,如下:如果仅想打印出数值,使得打印出的信息更加简洁,则要用以下写法print('batch_loss...原创 2018-10-17 19:32:49 · 23088 阅读 · 4 评论 -
pytorch criterion踩坑小结
1. 数据类型不匹配:报错:Expected object of type torch.LongTensor but found type torch.FloatTensor for argument #2 ‘target’criterion = nn.CrossEntropyLoss()loss = criterion(y_pre, y_train)这里的y_train类型一定要是Lo...原创 2018-10-17 16:17:59 · 31436 阅读 · 7 评论 -
pytorch下搭建网络训练并保存模型
最近在学习pytorch,使用mnist数据集,搭建AlexNet训练并保存模型,将代码做一记录。建立数据集的方法见pytorch建立自己的数据集(以mnist为例)搭建网络的方法见用pytorch搭建AlexNet(微调预训练模型及手动搭建)训练代码如下:import torchimport osfrom torchvision import transformsimport to...原创 2018-10-18 13:56:12 · 4219 阅读 · 0 评论 -
pytorch搭建网络测试时报错Expected object of type torch.DoubleTensor but found type torch.FloatTensor...
用pytorch搭建网络测试时,代码报错如下:Expected object of type torch.DoubleTensor but found type torch.FloatTensor for argument #2 ‘weight’搭建的网络为AlexNet,测试代码如下x = np.random.rand(1,3,224,224)# x=x.astype(np.flo...原创 2018-10-14 16:03:59 · 5425 阅读 · 1 评论 -
用pytorch搭建AlexNet(微调预训练模型及手动搭建)
本文介绍了如何在pytorch下搭建AlexNet,使用了两种方法,一种是直接加载预训练模型,并根据自己的需要微调(将最后一层全连接层输出由1000改为10),另一种是手动搭建。构建模型类的时候需要继承自torch.nn.Module类,要自己重写__\_\___init__\_\___方法和正向传递时的forward方法,这里我自己的理解是,搭建网络写在__\_\___init__\_\___...原创 2018-10-14 15:58:42 · 16494 阅读 · 5 评论 -
pytorch建立自己的数据集(以mnist为例)
本文将原始的numpy array数据在pytorch下封装为Dataset类的数据集,为后续深度网络训练提供数据。#加载并保存图像信息首先导入需要的库,定义各种路径。import osimport matplotlibfrom keras.datasets import mnistimport numpy as npfrom torch.utils.data.dataset imp...原创 2018-10-12 19:26:01 · 16187 阅读 · 3 评论 -
用tensorflow搭建AlexNet
最近研究了一下如何用tensorflow搭建alexnet并进行测试,使用tensorboard查看训练过程,我没有使用tensorflow自带的minist数据集,而是通过加载keras的minist数据集得到numpy array类型的数据,再自己处理之后“喂”个网络的,使用了tqdm显示训练进度条。我把整个过程写了一个完整的代码供大家参考。#!/usr/bin/env python2#...原创 2018-09-10 18:56:22 · 2917 阅读 · 3 评论 -
tensorflow训练时取batch数据的方法
上一篇介绍了如何取随机batch,这一篇介绍的方法是先随机打乱数据,再按顺序一个一个batch的取。def shuffle_set(train_image, train_label, test_image, test_label): train_row = range(len(train_label)) random.shuffle(train_row) train...原创 2018-09-10 15:45:03 · 11517 阅读 · 0 评论 -
利用tensorflow训练网络时随机取batch数据的方法
利用tensorflow训练数据时,要自己手动给网络“喂”数据,在使用自己的数据集时,有时要手动选取batch数据,可利用如下代码选取随机batchdef get_batch(image, label, batch_size, now_batch, total_batch): if now_batch < total_batch: image_batch = im...原创 2018-09-10 15:22:45 · 5539 阅读 · 1 评论 -
python读取numpy图像数据时将灰度图像转为3通道并更改尺寸的方法
在用深度网络训练时,大部分网络都要求输入为3通道,而有时现有的数据为单通道的灰度图,并且尺寸也不符合网络输入,可用下面的函数转换,以minist数据集为例。import numpy as npfrom keras.datasets import mnistfrom keras.utils import to_categoricalimage_size = 224def load_mn...原创 2018-09-10 15:17:21 · 26145 阅读 · 4 评论 -
tensorflow加载模型并测试的方法
利用tensorflow搭建模型并保存时,保存模型的方法为saver = tf.train.Saver()saver.save(sess, model_path + model_name)这样会在model_path路径下得到3个名为model_name的文件和一个checkpoint文件,例如,model_name=alexnet201809101818,则会得到如下四个文件 ...原创 2018-09-12 16:15:33 · 62761 阅读 · 4 评论 -
matplotlib显示伪彩色图像及色度条
灰度图显示为伪彩色图法一import matplotlib.pyplot as pltimg = plt.imread('C:/Users/leex/Desktop/lena.jpg')img_s = img[:,:,0]# 直接读入的img为3通道,这里用直接赋值的方法转为单通道sc = plt.imshow(img_s)sc.set_cmap('hot')# 这里可以设置...原创 2018-09-11 16:50:25 · 11032 阅读 · 1 评论 -
基于keras的深度模型训练过程及结果记录方法
记录训练过程history=model.fit(X_train, Y_train, epochs=epochs,batch_size=batch_size,validation_split=0.1)将训练过程记录在history中利用时间记录模型import timemodel_id = np.int64(time.strftime('%Y%m%d%H%M', time.lo...原创 2018-05-29 21:52:35 · 17017 阅读 · 2 评论 -
keras保存和加载模型的方法
keras模型主要分为model和weight两个部分,前者保存整个模型结构,后者仅保存权值保存模型仅保存权重HDF5文件model.save_weights("model.h5") 保存整个模型及结构model.save('model_weight.h5')加载模型载入权重from keras.models import load_mo...原创 2018-05-21 23:09:37 · 27901 阅读 · 2 评论 -
python二维列表list赋值时整列重复赋值问题
当我们使用如下方式创建一个二维列表时:l = [[0]*3]*3如果尝试给其中一个元素赋值l[0][1] = 1会发现整个列表的第二列都被赋值了这种情况的原因是创建列表时第2,3行其实是第一行的一个浅拷贝,它们的地址是一样的,给任意一个赋值其余的也会被赋值,解决方法是使用如下方法建立二维列表l = [[0]*3 for i in range(3)]赋值结果:l[0][1]...原创 2019-01-30 22:32:55 · 7597 阅读 · 4 评论