尝试解决cifar10问题
我理解这个问题和猫狗的不同,在于将2类扩展为10类,其它的地方我准备采用相同的方法。
df=pd.read_csv('trainLabels.csv',header=0,sep=',')
#filename可以直接从盘符开始,标明每一级的文件夹直到csv文件,header=0表示头部为空第一行为标题
#sep=','表示数据间分隔符是逗号
print df.head()
print df.tail()
TRAIN_DIR = './train/'
TEST_DIR = './test/'
tmp = df[(df.label=="airplane ")]
train_airplane = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_airplane",len(train_airplane))
tmp = df[(df.label=="automobile ")]
train_automobile = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_automobile",len(train_automobile))
tmp = df[(df.label=="bird ")]
train_bird = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_bird",len(train_bird))
tmp = df[(df.label=="cat")]
train_cat = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_cat",len(train_cat))
tmp = df[(df.label=="deer")]
train_deer = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_deer",len(train_deer))
tmp = df[(df.label=="dog")]
train_dog = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_dog",len(train_dog))
tmp = df[(df.label=="frog")]
train_frog = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_frog",len(train_frog))
tmp = df[(df.label=="horse")]
train_horse = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_horse",len(train_horse))
tmp = df[(df.label=="ship")]
train_ship = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_ship",len(train_ship))
tmp = df[(df.label=="truck")]
train_truck = [TRAIN_DIR+str(i)+'.png' for i in a.id]
print("train_truck",len(train_truck))
test_images = [TEST_DIR+str(i)+'.png' for i in os.listdir(TEST_DIR)]
print("test_images",len(test_images))
df=pd.read_csv('trainLabels.csv',header=0,sep=',')
train_airplane = [str(i)+'.png' for i in df[(df.label=="airplane")].id]
def show_cifar10(idx):
airplane = read_image(train_airplane[idx])
automobile = read_image(train_automobile[idx])
bird = read_image(train_bird[idx])
cat = read_image(train_cat[idx])
deer = read_image(train_deer[idx])
dog = read_image(train_dog[idx])
frog = read_image(train_frog[idx])
horse = read_image(train_horse[idx])
ship = read_image(train_ship[idx])
truck = read_image(train_truck[idx])
pair = np.concatenate((airplane, automobile,bird,cat,deer,dog,frog,horse,ship,truck), axis=1)
plt.figure(figsize=(10,5))
plt.imshow(pair)
plt.show()
for idx in range(0,5):
show_cifar10(idx)
for filename in train_truck[:TESTNUM]:
if(os.path.exists(TRAIN_DIR+filename)):
os.symlink(TRAIN_DIR+filename,'./train2/truck/'+filename);
Unable to create link (Name already exists)

os.listdir(TEST_DIR)
/home/helu/cifar10/test/203688.png
/home/helu/cifar10/test/221824.png
/home/helu/cifar10/test/289334.png
/home/helu/cifar10/test/104194.png
/home/helu/cifar10/test/30977.png
os.path.exists(dirname):
os.listdir() #不给参数默认输出当前路径下所有文件
os.listdir('/home/python') #可以指定目录
os.mkdir('test2/test')
os.symlink(TRAIN_DIR+filename, './train2/airplane/'+filename)
shutil.rmtree(dirname)
def rmrf_mkdir(dirname):
if os.path.exists(dirname):
shutil.rmtree(dirname)
os.mkdir(dirname)
def show_cifar10(idx):
airplane = read_image(TRAIN_DIR+train_airplane[idx])
automobile = read_image(TRAIN_DIR+train_automobile[idx])
bird = read_image(TRAIN_DIR+train_bird[idx])
cat = read_image(TRAIN_DIR+train_cat[idx])
deer = read_image(TRAIN_DIR+train_deer[idx])
dog = read_image(TRAIN_DIR+train_dog[idx])
frog = read_image(TRAIN_DIR+train_frog[idx])
horse = read_image(TRAIN_DIR+train_horse[idx])
ship = read_image(TRAIN_DIR+train_ship[idx])
truck = read_image(TRAIN_DIR+train_truck[idx])
pair = np.concatenate((airplane, automobile,bird,cat,deer,dog,frog,horse,ship,truck), axis=1)
plt.figure(figsize=(10,5))
plt.imshow(pair)
plt.show()
for idx in range(0,5):
show_cifar10(idx)
def CNNFeatureExtract(MODEL, image_size, lambda_func=None):
width = image_size[0] #图像宽
height = image_size[1] #图像高
input_tensor = Input((height, width, 3))
x = input_tensor
if lambda_func:
x = Lambda(lambda_func)(x)
base_model = MODEL(input_tensor=x, weights='imagenet', include_top=False) #这里全部使用no_top模型
model = Model(base_model.input, GlobalAveragePooling2D()(base_model.output))
gen = ImageDataGenerator()#使用了generate,并且使用的是文件夹模式
train_generator = gen.flow_from_directory("train2", image_size, shuffle=False, batch_size=16)
test_generator = gen.flow_from_directory("test2", image_size, shuffle=False, batch_size=16, class_mode=None)
train = model.predict_generator(train_generator)
test = model.predict_generator(test_generator)
with h5py.File("GoCifar10_%s.h5"%MODEL.func_name) as h:
h.create_dataset("train", data=train)
h.create_dataset("test", data=test)
h.create_dataset("label", data=train_generator.classes)

尝试解决cifar10问题的更多相关文章
- 尝试解决在构造函数中同步调用Dns.GetHostAddressesAsync()引起的线程死锁
(最终采用的是方法4) 问题详情见:.NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长 看看在 Linux 与 Windows 上发生线程死锁的后果. Linux: Microsoft ...
- 尝试解决IIS问题一些方法
尝试解决IIS问题一些方法 在控制面板中安装相关功能.添加相关角色 Win下注册IIS: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_re ...
- 卷积网络训练太慢?Yann LeCun:已解决CIFAR-10,目标 ImageNet
原文连接:http://blog.kaggle.com/2014/12/22/convolutional-nets-and-cifar-10-an-interview-with-yan-lecun/ ...
- 尝试解决IDea 启动项目后,后台疯狂输出日志。
今天启动项目的时候,昨天下班前还好好,然后今天就炸了.后台疯狂输出日志.. 就类似这种,大批量的刷.其实项目已经正常启动了,就是疯狂的刷日志. 2019-03-29 08:42:53 [DEBUG] ...
- MYSQL无法连接,提示10055错误尝试解决
解决方法:(以下内容为本人亲自实践原创)总结一下,应该是连接数的问题,那么服务器上有些什么连接数:1.IIS网站服务器中各个网站中有“连接超时时间”,“会话超时时间”:2.其它程序占用的服务器连接数( ...
- django在启动时抛出Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试 解决办法
1.适用场景 在启动某个服务的时候,比如python中django启动的时候8000端口被占用,导致无法启动服务. 2.解决办法 通过命令行找出端口对应的PID进程 C:\Users\micha> ...
- [转][Java]尝试解决Java多行字符串的编辑问题
转自:https://blog.csdn.net/jiuwuerliu/article/details/51207045 参考了:https://www.v2ex.com/amp/t/445522 除 ...
- 尝试解决nginx的499错误1
- 当安装了ubuntu操作系统怎么也调用不出中文输入法时,可以用以下方式尝试解决。
卸载 fcitx sudo apt-get remove fcitx 重启 sudo reboot 重新安装 fcitxsudo apt-get isntall fcitx 安装拼音输入法sudo a ...
随机推荐
- spark 关联source
IDEA就自动把jar包中的字节码反编译为Java源码,并且,我们可以直接下个断点调试程序,但是对于Scala,IDEA的反编译效果并不是很好,如下图所示: 2)提示“Source not found ...
- 在TensorFlow中运行程序多次报错:AttributeError: __exit__
我没有记住语句 with tf.Session() as sess: 多次写成了 with tf.Session as sess: 吃括号这个低级的错误又犯了,真不应该,立下flag:以后再犯相同的错 ...
- C# 调用.bat 提示该命令不是内部命令或外部命令
前提:双击.bat文件可以执行成功,用C#调用提示该命令不是内部命令或外部命令...... 解决方法:下面代码的红色标注,既要设置.bat文件的文件名FileName,也要设置.bat文件所在的文件夹 ...
- RepRap Prusa i3 平台自動補正
RepRap Prusa i3 平台自動補正 平台校正不但費時,而且經常失敗,時在是很令人洩氣!期盼了好一陣子,Marlin終於將平台自動補正的功能加進來了!!這個功能將原本Z軸的Endstop,改裝 ...
- Java基础(basis)-----异常与错误处理
1.编译型异常和运行时异常 编译时异常是指程序正确 而由外界条件不满足而产生的异常 java 中要求必须去捕捉住这类异常 不然无法通过编译 运行时异常是指程序存在着bug 如空指针异常 数 ...
- Glorious Brilliance (最短路 + 带权二分图匹配)
这是一道代码大题.一开始读错题意了,然后理解成直接看上去的那种相邻,然后想不通好久!!! 把不同联通的图分离出来,然后先预处理一下形成之后的相邻图的状态,然后根据01确定哪一些是需要更换状态的,然后建 ...
- codeforces 979C Kuro and Walking Route
题意: 给出一棵树,其中有两个点,x和y,限制走了x之后的路径上不能有y,问可以走的路径(u,v)有多少条,(u,v)和(v,u)考虑为两条不同的路径. 思路: 简单树形dp,dfs统计在x到y路径( ...
- flask实战-个人博客-使用蓝本模块化程序
使用蓝本模块化程序 实例化flask提供的blueprint类就创建一个蓝本实例.像程序实例一样,我们可以为蓝本实例注册路由.错误处理函数.上下文处理函数,请求处理函数,甚至是单独的静态文件文件夹和模 ...
- foreach 语句
foreach 语句很适合用来枚举 如数组.列表.集合之类的数据结构中的元素. 不必准确知道元素个数.如果基数据不包含任何元素,则foreach循环不执行 foreach(<元素> ...
- 将jar包制作成docker镜像
将jar包制作成docker镜像1.准备可运行jar包2.建立Dockerfile文件 文件内容: FROM java:8VOLUME /tmpADD xxx-sendemail-0.0.1-SNAP ...