生成h5文件_h5实现文件下载

生成h5文件_h5实现文件下载生成训练h5文件importh5pyimportosimportcv2importmathimportnumpyasnpimportrandomimportroot_path=”/home/tyd/caffe_case/HDF5/image”withopen(“/home/tyd/caffe_case/HDF5/hdf5.txt”,”r”)…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 

生成训练h5文件

import h5py
import os
import cv2
import math
import numpy as np
import random
import 

root_path = "/home/tyd/caffe_case/HDF5/image"

with open("/home/tyd/caffe_case/HDF5/hdf5.txt","r") as f:
    lines = f.readlines()

num = len(lines)
random.shuffle(lines)

imgAccu = 0
imgs = np.zeros([num,3,224,224])
labels = np.zeros([num,10])
for i in range(num):
    line=lines[i]
    segments=re.split('\s+',line)[:-1]
    print segments[0]
    img = cv2.imread(os.path.join(root_path,segments[0]))
    img = cv2.resize(img,(224,224))
    img = img.transpose(2,0,1)
    imgs[i,:,:,:]=img.astype(np.float32)
    for j in range(10):
        lables[i,j]=float(segments[j+1])*224/256
batchSize = 1
batchNum = int(math.ceil(1.0*num/batchSize))

imgsMean = np.mean(imgs,axis=0)
imgs = (imgs -imgsMean)/255.0
labelsMean = np.mean(labels,axis=0)
labels = (labels-labelsMean)/10

if os.path.exists('trainlist.txt'):
    os.remove('trainlist.txt')
    
if os.path.exists('testlist.txt'):
    os.remove('testlist.txt')
comp_kwargs={'compression':'gzip','compression_opts':1}
for i in range(batchNum):
    start = i*batchSize
    end=min((i+1)*batchSize,num)
    if i<batchNum-1:
        filename='/home/tyd/caffe_case/HDF5/h5/train{0}.h5'.format(i)
    else:
        filename='/home/tyd/caffe_case/HDF5/h5/test{0}.h5'.format(i-batchNum+1)
    print filename
    with h5py.File(filename,'w') as f:
        f.create_dataset('data',data=np.array((imgs[start:end]-imgsMean)/255.0).astype(np.float32),**comp_kwargs)
        f.create_dataset('label',data=np.array(labels[start:end]).astype(np.float32),**comp_kwargs)
        
    if i < batchNum-1:
        with open('/home/tyd/caffe_case/HDF5/h5/trainlist.txt','a') as f:
            f.write(os.path.join(os.getcwd(),'train{0}.h5'.format(i)+'\n')
    else:
        with open('/home/tyd/caffe_case/HDF5/h5/testlist.txt','a') as f:
            f.write(os.path.join(os.getcwd(),'train{0}.h5'.format(i-batchNum+1)+'\n')
imgsMean = np.mean(imgsMean,axis=(1,2))
with open('mean.txt','w') as f:
    f.write(str(imgsMean[0])+'\n'+str(imgsMean[2]))

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/195669.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 平时在PHP编码时有没有注意到这些问题

    平时在PHP编码时有没有注意到这些问题

  • asp.net专业实习——网上花店系统

    asp.net专业实习——网上花店系统2019.5.2项目适用vs2010直接打开后更改数据库连接字符串即可如果在添加商品遇到报错,多半是输入的字符太多了链接:https://pan.baidu.com/s/1ulU89ogdHKRVGv9ad5Zszw提取码:he88复制这段内容后打开百度网盘手机App,操作更方便哦此项目是用vs2013开发,使用时需要重新配置连接字符串。。如果你的环境是vs20…

  • matlab运算放大器概述,运算放大器概述「建议收藏」

    matlab运算放大器概述,运算放大器概述「建议收藏」运算器的历史第一个使用真空管设计的放大器大约在1930年前后完成,这个放大器可以执行加与减的工作。运算放大器最早被设计出来的目的是将电压类比成数字,用来进行加、减、乘、除的运算,同时也成为实现模拟计算机(analogcomputer)的基本建构方块。然而,理想运算放大器的在电路系统设计上的用途却远超过加减乘除的计算。今日的运算放大器,无论是使用晶体管(transistor)或真空管(vacuum…

  • Vue.js 入门教程[通俗易懂]

    Vue.js 入门教程[通俗易懂]Vue.js教程Vue.js(读音/vjuː/,类似于view)是一套构建用户界面的渐进式框架。Vue只关注视图层,采用自底向上增量开发的设计。Vue的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。MVVM模式下图不仅概括了MVVM模式(Model-View-ViewModel),还描述了在Vue.js中ViewModel是如何和View以及Model进行交互…

  • 手机自动进程管理软件_进程管理器下载

    手机自动进程管理软件_进程管理器下载大家好,我是小小明,今天要带大家做一款简易的网页版进程管理器,最终效果如下:目标只要求能查看内存使用何cpu使用率即可。基础模块技术测试读取进程信息首先,我们可以使用psutil读取服务端的进程使用情况(包括内存和CPU):importpsutiln=psutil.cpu_count()infos=[]forprocinpsutil.process_iter(attrs=[‘memory_info’,’name’,’pid’]):info=proc.in

  • c# mysql executenonquery_C#与数据库访问技术总结(八)之ExecuteNonQuery方法

    c# mysql executenonquery_C#与数据库访问技术总结(八)之ExecuteNonQuery方法ExecuteNonQuery方法ExecuteNonQuery方法主要用来更新数据。通常使用它来执行Update、Insert和Delete语句。该方法返回值意义如下:对于Update、Insert和Delete语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为-1。Command对象通过ExecuteNonQuery方法更新数据库的过程非常简单,需要进行的步骤如下:(1)创建数…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号