【动手学深度学习】(九)Kaggle房价预测

文章目录

  • 一、代码
    • 1.下载和缓存数据集
  • 【相关总结】
    • 1.os.makedirs()
    • 2.os.path.join()
    • 3.os.path.exits()
    • 4.os.path.dirname()

一、代码

题目链接

1.下载和缓存数据集

建立字典DATA_HUB,将数据集名称的字符串映射到数据集相关的二元组上,这个二元组包含数据集的url和验证文件完整性的sha-1密钥

import hashlib
import os
import tarfile
import zipfile
import requests#@save
DATA_HUB = dict()
DATA_URL = 'http://d2l-data.s3-accelerate.amazonaws.com/'

定义download函数用来下载数据集,并返回下载文件的名称。 如果缓存目录中已经存在此数据集文件,并且其sha-1与存储在DATA_HUB中的相匹配, 我们将使用缓存的文件。

def download(name, cache_dir=os.path.join('..', 'data')):  #@save"""下载一个DATA_HUB中的文件,返回本地文件名"""assert name in DATA_HUB, f"{name} 不存在于 {DATA_HUB}"url, sha1_hash = DATA_HUB[name]
#   递归创建目录os.makedirs(cache_dir, exist_ok=True)fname = os.path.join(cache_dir, url.split('/')[-1])# 检查本地是否已有缓存文件,如果有并且哈希值匹配,则直接返回本地文件路径if os.path.exists(fname):sha1 = hashlib.sha1()with open(fname, 'rb') as f:while True:data = f.read(1048576)if not data:breaksha1.update(data)if sha1.hexdigest() == sha1_hash:return fname  # 命中缓存print(f'正在从{url}下载{fname}...')r = requests.get(url, stream=True, verify=True)with open(fname, 'wb') as f:f.write(r.content)return fname

实现两个实用函数分别用于:下载并解压zip和tar文件,另一个是将所有数据集从DATA_HUB下载到缓存目录中。

def download_extract(name, folder=None):  #@save"""下载并解压zip/tar文件"""fname = download(name)base_dir = os.path.dirname(fname)data_dir, ext = os.path.splitext(fname)if ext == '.zip':fp = zipfile.ZipFile(fname, 'r')elif ext in ('.tar', '.gz'):fp = tarfile.open(fname, 'r')else:assert False, '只有zip/tar文件可以被解压缩'fp.extractall(base_dir)return os.path.join(base_dir, folder) if folder else data_dirdef download_all():  #@save"""下载DATA_HUB中的所有文件"""for name in DATA_HUB:download(name)

【相关总结】

1.os.makedirs()

用于递归地创建目录
os.makedirs(path, mode, exist_ok=False)
path:要创建的目录,可以为相对路径或绝对路径
mode:指定权重模式
False表示当目标目录已存在时,抛出OSError

os.makedirs(cache_dir, exist_ok=True)

2.os.path.join()

os.path.join()用来拼接多个路径字符串。

import ospath1 = 'a'
path2 = 'b'
path3 = 'c'path = os.path.join(path1,path2,path3)
print(path)

a\b\c

3.os.path.exits()

判断文件或者文件夹是否存在

import os
path_exits = os.path.exists('../data')
print(path)

True

4.os.path.dirname()

获取文件所在目录路径

import osimport sys# print(sys.path[0])
fname = sys.path[0] # 输出当前文件所在目录
file = '../src/09test.ipynb'
print(fname)   
# print (os.path.abspath('.')) 
dir = os.path.dirname(fname)
file_dir = os.path.dirname(file)
print(dir)
print(file_dir)

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

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

相关文章

Linux 进程(三)

Linux进程状态的查看: 这是Linux内核源代码对于进程状态的定义: R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。 S睡眠状态(sleeping): 意味着进程在…

openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性

文章目录 openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性138.1 操作步骤 openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性 数据库事务一致性通过逻辑时钟保证,与操作系统时间无关,但是系统时间不一致会导致…

[传智杯 #3 决赛] 商店

disangan333 想给 disangan233 买一个礼物,于是他和你一起逛商店。 超详细,超详细,超详细,超详细 题目描述 有 n 名同学去逛商店,店里有 m 个物品,第 i 人有 wi​ 块钱,第 i 个物品价格 ci​…

18487.1 - 2015 电动汽车充电系统标准 第1部分 关键点梳理

一、部分知识介绍 1、连接方式 使用电缆和连接器将电动汽车接入电网(电源)的方法。 1.1、连接方式A 1.2、连接方式B 1.3、连接方式C 2、电动汽车控电设备 2.1、按照输出电压分类 1)交流 单相 220V,三相 380V. 2&#xff09…

【超全】React学习笔记 下:路由与Redux状态管理

React学习笔记 React系列笔记学习 上篇笔记地址:【超全】React学习笔记 上:基础使用与脚手架 中篇笔记地址:【超全】React学习笔记 中:进阶语法与原理机制 React路由概念与理解使用 1. 引入 React路由是构建单页面应用(SPA, Sin…

Kotlin学习之03

nonLocalReturn返回调用的方法,下面直接返回main方法 inline fun nonLocalReturn(block:() -> Unit) { block() } fun main() { nonLocalReturn { return } } 禁止non-local-return,使用crossinline关键字 public inline fun IntArray.forEach(…

布局问题1:addSpacing()和setSpacing()函数的区别?

addSpacing()和setSpacing()函数的区别? 1)addSpacing() :插入间距10,用于增加两个控件之间距离; 2)setSpacing():设置各部件的相邻距离,用于设置属于一个布局中的所有控件之间的间距。 这里举…

CSS 选择器优先级,!important 也会被覆盖?

目录 1,重要性2,专用性3,源代码顺序 CSS 属性值的计算过程中。其中第2步层叠冲突只是简单说明了下,这篇文章来详细介绍。 层叠冲突更广泛的被称为 CSS选择器优先级计算。 为什么叫层叠冲突,可以理解为 CSS 是 Cascadi…

基于 Python+flask 构建态势感知系统(附完整源码)

一、开发 一个基于linux的态势感知系统,基于python和flask框架开发,项目文件目录如下: admin -核心算法 charts -图表生成 model -类 app.py -主文件 config.py -配置文件 install.py -安装文件 二、安装 1、配置 数据库密码默认设…

redis单机版本安装

redis单机版本安装 1.redis单机版源码编译安装搭建(4.0示例) redis下载地址 https://redis.io/download redis源码编译 #!/bin/sh yum install -y wget gcc gcc-c make tar openssl openssl-devel cmakecd /usr/local/src wget http://download.redis.io/releases/redis-4…

华为杯研究生数学建模优秀参考论文(优秀论文参考2004-2022年)

一、背景介绍 中国研究生数学建模竞赛是一项面向在校研究生进行数学建模应用研究的学术竞赛活动,是广大在校研究生提高建立数学模型和运用互联网信息技术解决实际问题能力,培养科研创新精神和团队合作意识的大平台,大赛赞助单位为华为技术有限…

如何基于OpenCV和Sklearn库开展数据降维

大家在做数据分析或者机器学习应用过程中,不可避免的需要对数据进行降维操作,好多垂直行业业务中经常出现数据量少但维度巨大的情况。数据降维的目的是为了剔除不相关或冗余特征,使得数据易用,去除无用数据,实现数据可…

什么是Daily Scrum?

Daily Scrum(每日站会),Scrum Master要确保这个会在每天都会开。这个会的目的就是检查正在做的东西和方式是否有利于完成Sprint目的,并及时做出必要的调整。 每日站会一般只开15分钟,为了让事情更简单些,这…

【数据中台】开源项目(3)-DataSphere Studio

DataSphere Studio(简称 DSS)是微众银行自研的数据应用开发管理集成框架。 基于插拔式的集成框架设计,及计算中间件 Linkis ,可轻松接入上层各种数据应用系统,让数据开发变得简洁又易用。 在统一的 UI 下,D…

无线物理层安全学习

文章目录 3.17到3.203.85到3.88 3.17到3.20 3.85到3.88

论文阅读——Img2LLM(cvpr2023)

arxiv:[2212.10846] From Images to Textual Prompts: Zero-shot VQA with Frozen Large Language Models (arxiv.org) 一、介绍 使用大语言模解决VQA任务的方法大概两种:multi-modal pretraining and language-mediated VQA,即多模态预训练…

进程的创建:fork()

引入 创建进程的方式我们已经学习了一个!在我们运行指令(或者运行我们自己写的可执行程序)的时候不就是创建了一个进程嘛?那个创建进程的方式称为指令级别的创建子进程! 那如果我们想要在代码中创建进程该怎么办呢? fork() for…

【Win和Linux更换Java版本自动化脚本】

Windows版 要将Windows中的Java环境变量从Java 8更改为Java 9,并确保更改在重启计算机后仍然生效,请按照以下步骤操作: 首先,确保已经安装了Java 9。如果没有,请从Oracle官方网站下载并安装Java 9:https:/…

【算法通关村】链表基础经典问题解析

【算法通关村】链表基础&经典问题解析 一.什么是链表 链表是一种通过指针将多个节点串联在一起的线性结构,每一个节点(结点)都由两部分组成,一个是数据域(用来存储数据),一个是指针域&…

第一百八十六回 DropdownMenu组件

文章目录 1. 概念介绍2. 使用方法2.1 DropdownMenu2.1 DropdownMenuEntry 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何禁止页面跟随手机自动旋转"相关的内容,本章回中将介 绍DropdownMenu组件.闲话休提,让我们一起Talk Flutter吧。 …