天气情况图像分类练习赛 第三阶段(赛中感)

第三阶段也是实战阶段,不同于前两个阶段的填空而是实打实的预测分析
题目会给出8000张照片数据,其中6000作为训练集而另外2000张作位测试集,通过对6000张的训练来预测2000的结果,并将结果输出到csv文件中,提交检验成功
我们之前学了一阵子的TensorFlow,对神经网络的搭建有的大体的认识,而且在网上也轻松找到对应的模板,我们打算根据本题修改模板使其为之所用
在与同学的一起努力之下,初步代码已经完成,我们又进行修改和完善,最后成型(见如下代码)

import os
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from tensorflow import keras
import cv2
import keras
from keras import datasets, layers, modelsos.environ['KERAS_BACKEND'] = 'tensorflow'js_path = '/home/kesci/input/weather_image1552/train.json'
test_path = '/home/kesci/input/weather_image1552/测试集/'
train_path = '/home/kesci/input/weather_image1552/训练集/'
import json
testdata=400#测试集数量
path = '/home/kesci/input/weather_image1552/train.json'
with open(path, 'r') as f:label = json.load(f)def read_image(paths):os.listdir(paths)filelist = []for root, dirs, files in os.walk(paths):for file in files:if os.path.splitext(file)[1] == ".jpg":filelist.append(os.path.join(root, file))return filelistdef im_resize(paths):for filename in paths:with Image.open(filename) as im:newim = im.resize((128, 128))newim.save(filename)def im_array(paths):M = []for filename in paths:im = Image.open(filename)im_L = im.convert("L")im_L = im_L.resize((128, 128))Core = im_L.getdata()arr1 = np.array(Core, dtype='float32') / 255.0list_img = arr1.tolist()M.extend(list_img)return M# mp={'cloudy':0,'sunny':1}
dict_label={0:'1',1:'0'}
mp = {'sunny': 0, 'cloudy': 1}
# label=[0]*len(filelist_1)+[1]*len(filelist_2)
js_pic = []
js_lab = []
cnt = 0
for key in label:if (cnt < testdata):js_pic.append(key)js_lab.append(mp[label[key]])cnt += 1
train_lables = np.array(js_lab)tot = []
cnt=0
for key in label:if (cnt < 2000):tot.append(key)cnt += 1features = []
filelist = []
for i in range(len(js_pic)):img = cv2.imread(train_path + js_pic[i], 0)#print(train_path + js_pic[i])filelist.append(train_path + js_pic[i])
trainfilelist = filelist
M = []
M = im_array(trainfilelist)
train_images=np.array(M).reshape(len(trainfilelist),128,128)train_images = train_images[ ..., np.newaxis ]
#print(train_images)
# X = np.array(list(zip(x1,x2))).reshape(len(x1), 2)
# train_images=np.array(M)
# train_images = train_images[ ..., np.newaxis ]# 神经网络
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(128, 128, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(2, activation='softmax'))
model.summary()
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])model.fit(train_images, train_lables, epochs=10)
# ,batch_size=400
# print(model.evaluate(train_images,train_lables))a=[]
# test = r'C:\Users\carvi\Desktop\人工智能\天气识别\test'
filelist = read_image(test_path)
im_resize(filelist)
for i in range(2000):im = Image.open(test_path + tot[i])#print(test_path + tot[i])im_L = im.convert("L")Core = im_L.getdata()arr1 = np.array(Core, dtype='float32') / 255.0list_img = arr1.tolist()images = np.array(list_img).reshape(-1, 128, 128, 1)predictions_single = model.predict(images)#print("预测结果为:", dict_label[np.argmax(predictions_single)])#print("预测结果为:", np.argmax(predictions_single))a.append(np.argmax(predictions_single))#print(predictions_single)np.savetxt('/home/kesci/input/new.csv',a,delimiter = ',')  
print(a)
"""
for filename in filelist:im = Image.open(filename)#print(filename)im_L = im.convert("L")Core = im_L.getdata()arr1 = np.array(Core, dtype='float32') / 255.0list_img = arr1.tolist()images = np.array(list_img).reshape(-1, 128, 128, 1)predictions_single = model.predict(images)print("预测结果为:", np.argmax(predictions_single))print(predictions_single)
"""

在这里插入图片描述

搭建神经网络
所预测结果
在这里插入图片描述

但是对我们来说还有个巨大的麻烦,就是如何输出数据结果到csv文件,这可属实困扰到我,我查阅大量资料,但是最终效果总是不能让我满意,最后我想到一个方法:将答案结果输入到一个数组里,然后放在txt文件中,然后我再写另一个程序读取txt文件,然后输出到csv文件中,通过中折的方法达到我的目的。
输出程序如图

import os
import numpy as np
import  pandas as pd
# !/usr/bin/python
# coding = UFT-8
data = pd.read_table('C:\\Users\DELL\Desktop\活动\人工智能\图像\ceshi.txt',sep='\n')
#header=None:没有每列的column name,可以自己设定
#encoding='gb2312':其他编码中文显示错误
#sep=',': ','隔开
data1 = pd.DataFrame(data)
data1.to_csv('C:\\Users\DELL\Desktop\活动\人工智能\图像\data1.csv',sep='\n',index=False)
#data1 = pd.DataFrame(arr1, header = False, index = False) # header:原第一行的索引,index:原第一列的索引
#data1.to_csv('C:\\Users\DELL\Desktop\活动\人工智能\图像\data1.csv\data1.csv',sep='\n')

但是提交最终结果后发现得分只有0.5,实属懵逼了。我辛辛苦苦做了一阵子争取率只有一半,和刚开始蒙的一样,(我一开始把结果全部预测为1,就是纯瞎蒙的答案提交上去,看看能得到多少分,没想到是0.5)
还有个问题就是,按理说训练集越大正确率越高,但是实际是我6000个数据的训练正确率只有百分之50多,但是400个训练集却有百分之八十多,有时甚至到百分之九十几,搞不清为什么

最终提交的csv文件如图
在这里插入图片描述
在这里插入图片描述
继续搞吧,唉,路还长着呢~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一码阻塞,万码等待:ASP.NET Core 同步方法调用异步方法“死锁”的真相

在我们 2015 年开始的从 .NET Framework 向 .NET Core 迁移的工程中&#xff0c;遇到的最大的坑就是标题中所说的——同步方法中调用异步方法发生”死锁”。虽然在 .NET Framework 时代就知道不能在同步方法中调用异步方法&#xff0c;但我们却明知路有坑&#xff0c;偏向此路行…

take

take 题解参考 题目描述 Kanade has n boxes , the i-th box has p[i] probability to have an diamond of d[i] size. At the beginning , Kanade has a diamond of 0 size. She will open the boxes from 1-st to n-th. When she open a box,if there is a diamond in it an…

将传统 ASP.NET 应用迁移到 .NET Core

点击蓝字关注我现在越来越多的人在谈论. NET Core。诚然&#xff0c;.NET Core 是未来, 但是.NET Framework 仍在支持, 因为大量的应用程序无法在短时间内迁移。.NET Core 和 .NET Framework 就像电动汽车和汽油动力汽车。汽油车是成熟的&#xff0c;你可以毫无任何问题驾驶它&…

[翻译] 初看 ASP.NET Core 3.0 即将到来的变化

原文: A first look at changes coming in ASP.NET Core 3.0在我们努力完成下一个 minor 版本的 ASP.NET Core 的同时&#xff0c;我们也在对下一个 major 版本进行更新&#xff0c;其中包括如何使用框架组合项目、更紧密的 .NET Core 集成以及第三方开源集成&#xff0c;所有这…

aspnet core 2.1中使用jwt从原理到精通二

在aspnet core中&#xff0c;自定义jwt管道验证有了上一节的内容作为基础&#xff0c;那这点也是非常容易的&#xff0c;关键点在中间件&#xff0c;只是把上一级在测试类中的自定义验证放到中间件中来即可&#xff0c;不过需要注意&#xff1a;中间件 的位置很重要&#xff0c…

CentOS开发ASP.NET Core入门教程

因为之前一直没怎么玩过CentOS&#xff0c;大多数时间都是使用Win10进行开发&#xff0c;然后程序都部署在Window Server2008或者Window Server2012上&#xff01;因此想尝试下Linux系统。最后经过选型选了比较流行的CentOS系统。正好&#xff0c;今晚要加班&#xff0c;所以在…

工厂参观记:.NET Core 中 HttpClientFactory 如何解决 HttpClient 臭名昭著的问题

在 .NET Framework 与 .NET Core 中 HttpClient 有个臭名昭著的问题&#xff0c;HttpClient 实现了 IDispose 接口&#xff0c;但当你 Dispose 它时&#xff0c;它不会立即关闭所使用的 tcp 连接&#xff0c;而是将 tcp 连接置为 TIME_WAIT 状态&#xff0c;240秒&#xff08;4…

ASP.NET Core2读写InfluxDB时序数据库

在我们很多应用中会遇到有一种基于一系列时间的数据需要处理&#xff0c;通过时间的顺序可以将这些数据点连成线&#xff0c;再通过数据统计后可以做成多纬度的报表&#xff0c;也可通过机器学习来实现数据的预测告警。而时序数据库就是用于存放管理这种有着时间顺序数据的&…

Nature 新研究发布,GPT 驱动的机器人化学家能够自行设计和进行实验,这对科研意味着什么?

文章目录 前言揭秘Coscientist不到四分钟&#xff0c;设计并改进了程序能力越大&#xff0c;责任越大 前言 有消息称&#xff0c;AI 大模型 “化学家” 登 Nature 能够自制阿司匹林、对乙酰氨基酚、布洛芬&#xff0c;甚至连复杂的钯催化交叉偶联反应&#xff0c;也能完成。 …

SmartCode 常见问题

SmartCode 能干什么&#xff1f;SmartCode IDataSource -> IBuildTask -> IOutput > Build EverythingSmartCode的执行流是 数据源->构建任务->输出&#xff0c;也就是说应用场景非常广泛。从DB读取数据结构&#xff0c;最终生成整个解决方案代码生成器&#x…

全面支持开源,微软加速 Visual Studio 和 Azure DevOps 云升级

在 2018 微软技术暨生态大会&#xff08;Microsoft Tech Summit&#xff09;上&#xff0c;微软宣布围绕 Visual Studio 和 Visual Studio Code 开发平台提供一系列新功能与服务&#xff0c;并对 Azure DevOps 研发云进行整合升级&#xff0c;通过 Visual Studio 开发平台与微软…

HttpClient参观记:.net core 2.2 对HttpClient到底做了什么?

.net core 于 10月17日发布了 ASP.NET Core 2.2.0 -preview3&#xff0c;在这个版本中&#xff0c;我看到了一个很让我惊喜的新特性&#xff1a;HTTP Client Performance Improvements &#xff0c;而且在Linux上性能提升了60% !之前就一直苦于 HttpClient 的糟糕特性&#xff…

后缀数组(讲解)

子串&#xff1a;从原串中选取连续的一段&#xff0c;即子串 空串也是子串 后缀&#xff1a;suf(k)为s(k…n)构成的子串 任何子串都是某个后缀的前缀 最长公共前缀 lcp(suf(i),suf(j)) 问题&#xff1a; 将所有后缀suf(1),suf(2),suf(N)按照字典序从小到大排序 暴力sort N2 …

2018 上海.NET职位围观报告

我一直说我是夏眠动物&#xff0c;如今已经11月份了&#xff0c;差不多也该活过来了&#xff0c;所以我决定写篇文章给各位.NET的支持者们和公司打打气&#xff0c;也算是为社区做点贡献吧。我最近主要干了两件事&#xff1a;让NPOI支持.NET Core&#xff0c;现已发布2.4版本。…

老张 .NetCore与Vue 框架学习

缘起作为一个.Net攻城狮已经4年有余了&#xff0c;一直不温不火&#xff0c;正好近来项目不是很忙&#xff0c;闲得无聊&#xff0c;搞一搞新技术&#xff0c;一方面是打发无聊的时间&#xff0c;一方面也是督促自己该学习辣&#xff01;身边的大神都转行的转行&#xff0c;加薪…

2018年10月28日宁波dotnet社区活动回顾及下次活动预告

离上次活动&#xff0c;有半年了&#xff0c;汗。之后尽量保证每月一次&#xff0c;以组织为主&#xff0c;多邀请嘉宾来分享。本次活动不足之处人手不足&#xff1a;由于活动组织事项受限于人手&#xff08;目前就我一个&#xff0c;这次活动前后我又应邀给大红鹰学院应届生介…

[JSOI2007]字符加密

题目描述 喜欢钻研问题的JS 同学&#xff0c;最近又迷上了对加密方法的思考。一天&#xff0c;他突然想出了一种他认为是终极的加密办法&#xff1a;把需要加密的信息排成一圈&#xff0c;显然&#xff0c;它们有很多种不同的读法。 例如‘JSOI07’&#xff0c;可以读作&…

BotSharp v0.2 发布, 支持微信智能回复

BotSharp v0.2 主要是针对微信的消息平台做整合&#xff0c;让.NET开发者可以轻松的搭建基于NLU自然语言理解的智能回复功能&#xff0c;BotSharp.Channel.Weixin模块负责和微信的公众号平台对接&#xff0c;接收消息通知&#xff0c;并能消息产生智能回复&#xff0c;回复的内…

P2852 [USACO06DEC]Milk Patterns G

题目描述 Farmer John has noticed that the quality of milk given by his cows varies from day to day. On further investigation, he discovered that although he can’t predict the quality of milk from one day to the next, there are some regular patterns in th…

c# 弹性和瞬态故障处理库Polly 学习

关于PollyPolly是一个基于.NET的弹性及瞬态故障处理库,允许开发人员以顺畅及线程安全的方式执行重试(Retry)、断路(Circuit Breaker)、超时(Timeout)、隔离(Bulkhead Isolation)和回退策略(Fallback ).Polly适用于 .NET 4.0, .NET 4.5 和.NET Standard 1.1。以上是官方文档对po…