代码完成的功能主要为:设置fits源文件路径和保存分类结果路径;读取fits文件并进行预处理和分类;保存分类结果

把主要代码贴出来:

设置目录:

if __name__ == '__main__':
    # app = QApplication(sys.argv)
    # ex = Example()
    # ex.show()
    # sys.exit(app.exec_())
    #file = 'F:\Auroral\experiment\datasetfortest'
    file = '/home/zhongjia/aurora_data/ASI_data/test'
    savepath = '/home/zhongjia/aurora_data/ASI_data/test/predict_result'
    predict(file,savepath)

寻找file目录下的fits文件

def __getitem__(self, idx):
        filename = self.root_dir + '/' + self.metas[idx]
        if filename[-4:]=='fits':
            img, standertime = readfits(filename)
            print('yes')
        if filename[-3:] =='img':
            img,standertime = readimg(filename)

if self.transform is not None:
            img = self.transform(img)
        return img

调用模型并将结果保存到savepath目录:

def predict(files,saveresult):
    batchsize=100
    model = DenseNet169()
    model.eval()
    load_path = 'checkpoint/_200.pth.tar'
    load_model(load_path,model)
    cuda_flag = False
    val_dataset = McDataset(
        files,
        transforms.Compose([
            ResizeCV2(224, 224),
            trans2pil(),
            transforms.ToTensor(),
            White(),]))
    kwargs = {'num_workers': 1, 'pin_memory': True} if cuda_flag else {}
    test_loader = torch.utils.data.DataLoader(
        val_dataset, batch_size= batchsize, shuffle=False, **kwargs)
    originfile = os.listdir(files)
    for batch_idx, data in enumerate(test_loader):
        # data, target = data.cuda(), target.cuda()
        data= Variable(data)
        output = model(data)
        output = F.softmax(output, dim=1)
        pred = output.data.max(1)[1]  # get the index of the max log-probability

for i in range(len(pred)):
            if pred[i] == 1:
                oldname = os.path.join(files,originfile[i+batch_idx * batchsize])
                newname = os.path.join(saveresult,'throat_aurora')
                if not os.path.exists(newname):
                    os.makedirs(newname)
                newname = os.path.join(newname, originfile[i + batch_idx * batchsize])
                shutil.copyfile(oldname, newname)
            else:
                oldname = os.path.join(files, originfile[i + batch_idx * batchsize])
                newname = os.path.join(saveresult, 'not_throat_aurora')
                if not os.path.exists(newname):
                    os.makedirs(newname)
                newname = os.path.join(newname,originfile[i + batch_idx * batchsize])
                shutil.copyfile(oldname, newname)

以上是部分功能代码,整个程序第一次成功运行完成后,我在test目录下看到了predict_result的预测结果文件:

当我对代码进行修改时,如果修改正确,程序正常运行,每次都能生成predict_result文件。

重点是!!!!!当我错误地修改代码后,程序运行报错,然后我再次将代码还原,即使和之前的代码一模一样,还是出现了以下报错:UnboundLocalError: local variable 'img' referenced before assignment

然后我一看是 img = self.transform(img)变量未定义就开始引用,妈的,我当时想到为什么之前同样的程序就能运行,难道之前程序是存在bug,只是偶尔成功运行。于是乎我对img的transform相关的函数进行了一步步仔细的检查,发现真的没有问题啊,不应该报错呢。别慌,还有一个地方未检查,那就是可能根本没找到fits,导致执行到transform出img未定义!!!

于是我 print('yes')发现还真的未执行,证明未找到fits, 我在jupyter lab和linux终端ls命令查看了test目录下文件,就只有一个fits文件啊,为什么会未找到fits呢???然后我想到隐藏文件:

ls -a 查看test目录下究竟有什么东西:

.ipynb_checkpoints文件隐藏在此!!!!!

删除它!!!!

然后程序正常运行了!

notebook运行出错的时候会生成.ipynb_checkpoints的隐藏文件,很可能导致你在该目录下寻找其他文件出错。

隐藏文件ipynb_checkpoints引起错误相关推荐

  1. Kaggle从入门到实战教程(新手必备)

    Kaggle从入门到实战教程(新手必备) 文章目录: 1 kernel的创建 1.1 Notebook的kernel的创建(从零开始创建) 1.1.1 相关的配置说明 1.2 Script的kerne ...

  2. Kaggle 新手入门必看,手把手教学

    Add Data 的路径:/kaggle/input git clone 的路径:/kaggle/working 一.Kaggle 账号注册 1.进入官网 Kaggle 点击 Register 进行账 ...

  3. linux中文件名以圆点开头的文件是,在UNIX下以小圆点开头的文件是( )。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 电子科大20秋<unix操作系统>在线作业1(单选题)1: 下列的操作系统,( )的内核和壳(shell)是完全分开的. A: UNIX和Li ...

  4. Visual Studio生成.vs隐藏文件夹,导致Git命令错误

    文章目录 背景 分析 解决 方案一 方案二『荐』 简 述: 使用 Visual Studio 2019 修改 C++ 工程,编译后根目录下多了 .vs 隐藏文件夹,后续使用 Git 命令报错,解决之. ...

  5. Android 导入项目时出现错误的解决方法(红色感叹号)

    如果发现导入工程的时候,出现"No projects are found to import" 的提示,首先查看项目目录中是否有隐藏文件.project,还有目录结构也还要有一个隐 ...

  6. 阿里云云服务器ECS上的Ubuntu16.04桌面安装及root账户登录错误处理

    阿里云云服务器ECS上的Ubuntu16.04桌面安装及root账户登录错误处理 2018-06-28 16:42:45 程百球 阅读数 2793更多 分类专栏: 程序配置 版权声明:本文为博主原创文 ...

  7. Eclipse Android插件中的“调试证书已过期”错误

    我正在使用Eclipse Android插件来构建项目,但是在控制台窗口中出现此错误: [2010-02-03 10:31:14 - androidVNC]Error generating final ...

  8. 解决修改“文件夹选项”后仍不能显示隐藏文件一例

    测试环境:windowsXP 作者:鹏飞万里 当我们要操作隐藏的文件夹时,通常可以在"控制面板"的"文件夹选项"-->"查看"中选择& ...

  9. 错误:由于系统启用了内核调试器,因此不可能进行调试解决方案

    错误:由于系统启用了内核调试器,因此不可能进行调试解决方案 原文地址如下所示: http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1 ...

  10. java代码没错却运行不了_Java代码没错误,tomcat能正常运行,但是我的项目主页却一直显示不了,显示404错误...

    重新在别人的电抄脑上配置一次环境变量bai 配置环境变量 点击du计算机->高级系zhi统设置->环境变量dao-> 在第一个中新建一个 变量:classpath 值:.;(记住是分 ...

最新文章

  1. 计算机硬件系统公开课课件,计算机硬件系统的组成(公开课).ppt.ppt
  2. ubuntu安装virtualbox
  3. MySQL引擎:MyIsam和Innodb的区别
  4. 【解决方案】win10连接wifi输入密码之后用户就消失了
  5. 红帽发布了下一代OpenShift Online
  6. 超好用的Windows管理器工具
  7. 能表示分数的计算机,分数计算器的实现
  8. Android应用开发中的风格和主题(style,themes)
  9. html树状图右侧_马尔可夫模型怎么画?必备入门级模型图设计软件
  10. python3哪个版本稳定-python3哪个版本稳定
  11. Java——三大分支:JavaSE、JavaEE、JavaME(概念理解)
  12. GPS从入门到放弃(二十二) --- 站点位移
  13. 历史上最有名的五句农民起义军口号
  14. php 视频 源码下载,PHP下载哔哩哔哩视频
  15. 20201220苹果黑解开放-黑解教程 最新iccid
  16. [NepCTF]WEB
  17. .java编译成.class 与 .class反编译成.java
  18. 阿里云公布 “抄袭事件” 调查结果:确有员工违规
  19. 自己的电脑怎样重装系统
  20. 漫步有感 | 让自己温和一点

热门文章

  1. 【OMAP-L138学习】 GDB+GDBServer调试ARM_Linux步骤
  2. C语言/C++常见习题问答集锦(十九)之C语言与漫天飞雪
  3. 天地图行政区划描边_百度地图api-在中国范围内的多行政区选择与反选(增加屏蔽层)...
  4. linux的webui服务,Aria2控制前端WebUI客户端安装教程
  5. oracle数据库表空间容量查询及扩容
  6. 盘点好用的 Markdown 编辑器
  7. PHP内裤,用sqlmap来扒下她的内裤吧~
  8. 微信公众号服务器管理员权限,简析公众号管理员和运营者的区别
  9. 记忆宫殿--清华一日游
  10. 房地产中介ERP管理系统设计方案(附源码)