From fe23c678c9e1e1bf897d38c49b6c23212c5abbbc Mon Sep 17 00:00:00 2001 From: Andrew Ilyas Date: Tue, 8 Mar 2022 19:54:31 -0500 Subject: [PATCH 1/4] fix translate --- ffcv/transforms/translate.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/ffcv/transforms/translate.py b/ffcv/transforms/translate.py index e53e157e..338f47cd 100644 --- a/ffcv/transforms/translate.py +++ b/ffcv/transforms/translate.py @@ -30,18 +30,15 @@ def __init__(self, padding: int, fill: Tuple[int, int, int] = (0, 0, 0)): def generate_code(self) -> Callable: my_range = Compiler.get_iterator() pad = self.padding + fill = self.fill def translate(images, dst): n, h, w, _ = images.shape - # y_coords = randint(low=0, high=2 * pad + 1, size=(n,)) - # x_coords = randint(low=0, high=2 * pad + 1, size=(n,)) - # dst = fill - + dst[:] = fill dst[:, pad:pad+h, pad:pad+w] = images for i in my_range(n): y_coord = randint(low=0, high=2 * pad + 1) x_coord = randint(low=0, high=2 * pad + 1) - # images[i] = dst[i, y_coords[i]:y_coords[i]+h, x_coords[i]:x_coords[i]+w] images[i] = dst[i, y_coord:y_coord+h, x_coord:x_coord+w] return images From c530eba80228f160d337a328b5bfc9ec88903524 Mon Sep 17 00:00:00 2001 From: Andrew Ilyas Date: Wed, 9 Mar 2022 02:24:49 -0500 Subject: [PATCH 2/4] small fixes: --- ffcv/pipeline/graph.py | 7 ++++++- ffcv/transforms/ops.py | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ffcv/pipeline/graph.py b/ffcv/pipeline/graph.py index ccc657bc..05da7cee 100644 --- a/ffcv/pipeline/graph.py +++ b/ffcv/pipeline/graph.py @@ -2,7 +2,12 @@ import warnings import ast -import astor +try: + # Useful for debugging + import astor +except ImportError: + pass + from collections import defaultdict from typing import Callable, Dict, List, Optional, Sequence, Set from abc import ABC, abstractmethod diff --git a/ffcv/transforms/ops.py b/ffcv/transforms/ops.py index cec29084..8e0613bd 100644 --- a/ffcv/transforms/ops.py +++ b/ffcv/transforms/ops.py @@ -42,6 +42,8 @@ class ToDevice(Operation): def __init__(self, device, non_blocking=True): super().__init__() self.device = device + assert not isinstance(device, ch.device), \ + f'Make sure device is a ch.device (not a {type(device)})' self.non_blocking = non_blocking def generate_code(self) -> Callable: From 2954ba2a64bf936280617e9ffc42c7393d080076 Mon Sep 17 00:00:00 2001 From: Andrew Ilyas Date: Fri, 11 Mar 2022 09:38:08 -0500 Subject: [PATCH 3/4] fix type --- ffcv/transforms/ops.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ffcv/transforms/ops.py b/ffcv/transforms/ops.py index 8e0613bd..fe906e8e 100644 --- a/ffcv/transforms/ops.py +++ b/ffcv/transforms/ops.py @@ -42,7 +42,7 @@ class ToDevice(Operation): def __init__(self, device, non_blocking=True): super().__init__() self.device = device - assert not isinstance(device, ch.device), \ + assert isinstance(device, ch.device), \ f'Make sure device is a ch.device (not a {type(device)})' self.non_blocking = non_blocking @@ -157,4 +157,4 @@ def convert(inp, dst): return convert def declare_state_and_memory(self, previous_state: State) -> Tuple[State, Optional[AllocationQuery]]: - return replace(previous_state, dtype=self.target_dtype, jit_mode=False), None \ No newline at end of file + return replace(previous_state, dtype=self.target_dtype, jit_mode=False), None From 21e507161a953006a66a511ba8ae74d25e16c16d Mon Sep 17 00:00:00 2001 From: Andrew Ilyas Date: Sat, 20 Aug 2022 18:31:27 -0400 Subject: [PATCH 4/4] Update ops.py --- ffcv/transforms/ops.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ffcv/transforms/ops.py b/ffcv/transforms/ops.py index fe906e8e..2b8bad5e 100644 --- a/ffcv/transforms/ops.py +++ b/ffcv/transforms/ops.py @@ -42,8 +42,8 @@ class ToDevice(Operation): def __init__(self, device, non_blocking=True): super().__init__() self.device = device - assert isinstance(device, ch.device), \ - f'Make sure device is a ch.device (not a {type(device)})' + # assert isinstance(device, ch.device), \ + # f'Make sure device is a ch.device (not a {type(device)})' self.non_blocking = non_blocking def generate_code(self) -> Callable: