小编iza*_*zak的帖子

python:为什么os.makedirs导致WindowsError?

在python中,我已经创建了一个函数来创建一个目录(如果该目录尚不存在).

def make_directory_if_not_exists(path):
    try:
        os.makedirs(path)
        break    
    except OSError as exception:
        if exception.errno != errno.EEXIST:
            raise
Run Code Online (Sandbox Code Playgroud)

在Windows上,有时我会得到以下异常:

WindowsError: [Error 5] Access is denied: 'C:\\...\\my_path'

在Windows文件浏览器中打开目录时似乎会发生这种情况,但我无法可靠地重现它.所以我只是做了以下解决方法.

def make_directory_if_not_exists(path):
    while not os.path.isdir(path):
        try:
            os.makedirs(path)
            break    
        except OSError as exception:
            if exception.errno != errno.EEXIST:
                raise
        except WindowsError:
            print "got WindowsError"
            pass       
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,即Windows什么时候出现mkdir这样的访问错误?有更好的解决方案吗?

python windows

8
推荐指数
2
解决办法
1万
查看次数

Xcode:如何将当前工作目录设置为可执行文件的相对路径?

我在Xcode中有一个命令行可执行文件.

我正在使用Xcode 5.1.在"选项"下项目的"方案编辑器"中,有一个"工作目录"选项.如何指定相对于.xcodeproj文件的路径?我试过一段时间.

我需要这个,因为代码需要假设相对于项目目录存在文件.

xcode xcode5

7
推荐指数
2
解决办法
2万
查看次数

如何在单元测试中使用wxpython捕获线程事件?

我构建了一个运行后台线程的wx python应用程序来执行一些计算.但是,我目前的实现不允许进行单元测试.

我非常密切地基于本教程中的第一个示例实现了我的实现:http://wiki.wxpython.org/LongRunningTasks

下面的代码使用wx.PostEvent()frame.connect()向主框架注册结果事件,表明计算已完成.我还展示了一个单元测试代码片段.

但是,对于要捕获的线程结果事件,wx.App.MainLoop()必须启动.但是,我不知道如何在单元测试中模拟这种行为.

我对GUI单元测试的理解通常是手动模拟事件.但是在这种情况下,我想让我的后台线程运行.我应该修改实施吗?或者为了单元测试的目的,我可以通过其他方式存根计算线程吗?例如,我应该在单元测试代码中运行线程,然后一旦完成,调用GUI代码直接处理此事件?

import time
from threading import *
import unittest
import wx

# Button definitions
ID_START = wx.NewId()
ID_STOP = wx.NewId()

# Define notification event for thread completion
EVT_RESULT_ID = wx.NewId()

def EVT_RESULT(win, func):
    """Define Result Event."""
    win.Connect(-1, -1, EVT_RESULT_ID, func)

class ResultEvent(wx.PyEvent):
    """Simple event to carry arbitrary result data."""
    def __init__(self, data):
        """Init Result Event."""
        wx.PyEvent.__init__(self)
        self.SetEventType(EVT_RESULT_ID)
        self.data = data
        print "inside result event"

class WorkerThread(Thread): …
Run Code Online (Sandbox Code Playgroud)

python unit-testing wxpython

5
推荐指数
1
解决办法
531
查看次数

Keras:自定义损失函数,训练数据与模型不直接相关

我正在尝试将用 tensorflow 层编写的 CNN 转换为在 tensorflow 中使用 keras api(我使用的是 TF 1.x 提供的 keras api),并且在编写自定义损失函数以训练模型时遇到问题。

根据本指南,在定义损失函数时,它需要参数(y_true, y_pred) https://www.tensorflow.org/guide/keras/train_and_evaluate#custom_losses

def basic_loss_function(y_true, y_pred):
    return ...
Run Code Online (Sandbox Code Playgroud)

然而,在我见过的每个例子中,y_true都以某种方式与模型直接相关(在简单的情况下,它是网络的输出)。在我的问题中,情况并非如此。如果我的损失函数依赖于一些与模型张量无关的训练数据,如何实现这一点?

具体来说,这是我的问题:

我正在尝试学习在成对图像上训练的图像嵌入。我的训练数据包括图像对和图像对之间匹配点的注释(图像坐标)。输入特征只是图像对,网络以连体配置进行训练。

我能够用张量流层成功地实现这一点,并用张量流估计器成功地训练它。我当前的实现从一个大型 tf 记录数据库构建了一个 tf 数据集,其中的特征是一个包含图像和匹配点数组的字典。在我可以轻松地将这些图像坐标数组提供给损失函数之前,但目前尚不清楚如何执行此操作。

keras tensorflow tf.keras

4
推荐指数
1
解决办法
2704
查看次数

标签 统计

python ×2

keras ×1

tensorflow ×1

tf.keras ×1

unit-testing ×1

windows ×1

wxpython ×1

xcode ×1

xcode5 ×1