diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..6aa76ff --- /dev/null +++ b/.env.example @@ -0,0 +1,8 @@ +# Python Server Configuration +# URL del servidor Python para identificación de SKU +NEXT_PUBLIC_PYTHON_SERVER_URL=http://localhost:8000 + +# Ejemplos de configuración: +# - Desarrollo local: http://localhost:8000 +# - Producción con ngrok: https://tu-url.ngrok-free.app +# - Producción: https://api.tu-dominio.com diff --git a/.gitignore b/.gitignore index ec4c29e..aafd791 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ yarn-error.log* # env files (can opt-in for committing if needed) .env* +!.env.example # vercel .vercel @@ -42,3 +43,6 @@ next-env.d.ts # Model files python_server/models/ + + + __pycache__/ \ No newline at end of file diff --git a/app/page.tsx b/app/page.tsx index d12d713..daf7a75 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -5,14 +5,11 @@ import { useSearchParams } from 'next/navigation'; import { Camera, History, VideoOff, Settings, Video } from 'lucide-react'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; -import { Slider } from '@/components/ui/slider'; -import { Switch } from '@/components/ui/switch'; import { type Shoe } from '@/lib/shoe-database'; import { addToHistory, getHistory } from '@/lib/history-storage'; import ShoeResultsPopup from '@/components/shoe-results-popup'; import HistorySidebar from '@/components/history-sidebar'; -import { useDetection } from '@/lib/ml/use-detection'; -import type { DetectionResult } from '@/lib/ml/types'; +import { skuIdentificationService } from '@/lib/sku-identification'; type CameraStatus = 'loading' | 'active' | 'denied' | 'no_devices'; @@ -32,128 +29,7 @@ function HomePageContent() { const [history, setHistory] = useState([]); const [detectedSKU, setDetectedSKU] = useState(null); const [isSettingsPanelOpen, setSettingsPanelOpen] = useState(false); - - // ML Detection state - const [detectionEnabled, setDetectionEnabled] = useState(true); // Auto-enable on page load - const [currentDetection, setCurrentDetection] = useState(null); - const [shoeDetectionCount, setShoeDetectionCount] = useState(0); - const lastSoundTimeRef = useRef(0); - - - // Initialize ML detection system first - const { - isLoading: isMLLoading, - metrics, - error: mlError, - initialize: initializeML, - startContinuous, - stopContinuous, - triggerDetection, - updateConfig, - config, - detectionEngine, - setDetectionCallback - } = useDetection({ - modelVariant: 'standard', // Start with standard model - enableContinuous: true, - enableTrigger: true, - onDetection: undefined, // Will be set after handleDetection is defined - onError: (error) => { - console.error('ML Detection Error:', error); - } - }); - - // Clean detection callback - no canvas drawing needed - const handleDetection = useCallback(async (detection: DetectionResult | null) => { - const callbackId = Math.random().toString(36).substr(2, 9); - console.log(`🔍 Detection callback received [${callbackId}]:`, detection); - setCurrentDetection(detection); - - // Count actual shoe detections (not just inference attempts) - if (detection) { - setShoeDetectionCount(prev => prev + 1); - } - - // Auto-trigger popup when shoe is detected with high confidence - if (detection && detection.confidence > 0.7) { - console.log(`🎯 HIGH CONFIDENCE SHOE DETECTED! [${callbackId}] Opening popup...`, detection); - - // Call SKU identification API - if (videoRef.current && detectionEngine) { - try { - console.log(`🔍 [${callbackId}] Calling SKU identification...`); - const sku = await detectionEngine.identifyProductSKU(videoRef.current); - console.log(`📦 [${callbackId}] SKU result:`, sku); - setDetectedSKU(sku); - - if (sku) { - // Create shoe object with SKU for history - const shoeWithSKU: Shoe = { - id: Date.now().toString(), - name: `Producto ${sku}`, - brand: 'Identificado por IA', - price: 'Precio por consultar', - image: '/placeholder.jpg', - confidence: detection.confidence, - sku: sku, - timestamp: new Date().toISOString() - }; - - const updatedHistory = addToHistory(shoeWithSKU); - setHistory(updatedHistory); - } - } catch (error) { - console.error(`❌ [${callbackId}] SKU identification failed:`, error); - setDetectedSKU(null); - } - } - - setPopupOpen(true); - - // Play detection sound with debouncing (max once per 2 seconds) - const now = Date.now(); - const lastTime = lastSoundTimeRef.current; - console.log(`🔊 Sound check [${callbackId}]: now=${now}, lastTime=${lastTime}, diff=${now - lastTime}ms`); - - if (now - lastTime > 2000) { - try { - const audioId = Math.random().toString(36).substr(2, 9); - // Use AudioContext for more reliable single-play behavior - const AudioContextClass = window.AudioContext || (window as typeof window & { webkitAudioContext: typeof AudioContext }).webkitAudioContext; - const audioContext = new AudioContextClass(); - console.log(`🔊 Playing detection sound [callback:${callbackId}] [audio:${audioId}]`); - - // Simple beep using Web Audio API - const oscillator = audioContext.createOscillator(); - const gainNode = audioContext.createGain(); - - oscillator.connect(gainNode); - gainNode.connect(audioContext.destination); - - oscillator.frequency.setValueAtTime(800, audioContext.currentTime); - gainNode.gain.setValueAtTime(0.3, audioContext.currentTime); - gainNode.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.3); - - oscillator.start(audioContext.currentTime); - oscillator.stop(audioContext.currentTime + 0.3); - - console.log(`▶️ Audio beep started [${audioId}]`); - lastSoundTimeRef.current = now; - } catch (e) { - console.warn(`Sound playback failed [${callbackId}]:`, e); - } - } else { - console.log(`🔇 Sound skipped [${callbackId}] - too soon after last sound (${now - lastTime}ms ago)`); - } - } - }, [detectionEngine]); - - // Set the detection callback after handleDetection is defined - useEffect(() => { - if (setDetectionCallback && handleDetection) { - setDetectionCallback(handleDetection); - } - }, [handleDetection, setDetectionCallback]); + const [isScanning, setIsScanning] = useState(false); // Effect to clean up the stream when component unmounts or stream changes useEffect(() => { @@ -170,33 +46,6 @@ function HomePageContent() { } }, [stream, cameraStatus]); // Runs when stream or camera status changes - - // Track initialization state to prevent multiple attempts - const [mlInitialized, setMLInitialized] = useState(false); - - // Initialize ML detection when camera is ready (only once) - useEffect(() => { - // Only log in development and when conditions change meaningfully - if (process.env.NODE_ENV === 'development') { - console.log('🔍 ML init check:', { - ready: videoRef.current && cameraStatus === 'active' && !isMLLoading && detectionEnabled && !mlInitialized - }); - } - - if (videoRef.current && cameraStatus === 'active' && !isMLLoading && detectionEnabled && !mlInitialized) { - console.log('✅ Starting ML detection...'); - setMLInitialized(true); - - initializeML(videoRef.current).then(() => { - console.log('✅ ML ready, starting continuous detection'); - startContinuous(); - }).catch((error) => { - console.error('❌ ML initialization failed:', error); - setMLInitialized(false); // Reset on error to allow retry - }); - } - }, [cameraStatus, detectionEnabled, isMLLoading, mlInitialized, initializeML, startContinuous]); - const startStream = useCallback(async (deviceId: string) => { // Stop previous stream if it exists (videoRef.current?.srcObject as MediaStream)?.getTracks().forEach((track) => track.stop()); @@ -274,57 +123,54 @@ function HomePageContent() { }; const handleScan = async () => { - if (detectionEnabled && triggerDetection) { - try { - console.log('🎯 Triggering ML detection...'); - const mlResult = await triggerDetection(); - - if (mlResult) { - console.log('✅ Shoe detected by ML, calling SKU identification...'); - - // Call SKU identification with the detected shoe - if (videoRef.current && detectionEngine) { - try { - const sku = await detectionEngine.identifyProductSKU(videoRef.current); - console.log('📦 Manual scan SKU result:', sku); - setDetectedSKU(sku); - - if (sku) { - // Create shoe object with SKU for history - const shoeWithSKU: Shoe = { - id: Date.now().toString(), - name: `Producto ${sku}`, - brand: 'Identificado por IA', - price: 'Precio por consultar', - image: '/placeholder.jpg', - confidence: mlResult.confidence, - sku: sku, - timestamp: new Date().toISOString() - }; - - const updatedHistory = addToHistory(shoeWithSKU); - setHistory(updatedHistory); - } - - setPopupOpen(true); - } catch (skuError) { - console.error('❌ SKU identification failed:', skuError); - // Still show popup even if SKU fails - setDetectedSKU(null); - setPopupOpen(true); - } - } else { - console.warn('⚠️ Video or detection engine not available for SKU call'); - setPopupOpen(true); - } - } else { - console.log('❌ No shoe detected by ML'); - } - } catch (error) { - console.error('❌ ML detection failed:', error); + if (!videoRef.current || isScanning) return; + + try { + setIsScanning(true); + console.log('📸 Capturando imagen del video...'); + + // Capture frame from video + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d')!; + canvas.width = videoRef.current.videoWidth; + canvas.height = videoRef.current.videoHeight; + ctx.drawImage(videoRef.current, 0, 0); + + // Get ImageData + const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); + + console.log('🔍 Llamando al servidor Python para identificar SKU...'); + + // Call SKU identification service + const sku = await skuIdentificationService.identifySKU(imageData); + console.log('📦 SKU result:', sku); + + setDetectedSKU(sku); + + if (sku) { + // Create shoe object with SKU for history + const shoeWithSKU: Shoe = { + id: Date.now().toString(), + name: `Producto ${sku}`, + brand: 'Identificado por IA', + price: 'Precio por consultar', + image: '/placeholder.jpg', + sku: sku, + timestamp: new Date().toISOString() + }; + + const updatedHistory = addToHistory(shoeWithSKU); + setHistory(updatedHistory); } - } else { - console.log('⚠️ ML detection is disabled'); + + setPopupOpen(true); + + } catch (error) { + console.error('❌ Error en identificación:', error); + setDetectedSKU(null); + setPopupOpen(true); + } finally { + setIsScanning(false); } }; @@ -499,11 +345,10 @@ function HomePageContent() { `} - {/* Detection Counters - Only show in dev mode */} - {isDev && ( -
-
👟 Shoes Found: {shoeDetectionCount}
-
⚡ Avg Speed: {metrics?.inferenceTime ? `${metrics.inferenceTime.toFixed(0)}ms` : 'N/A'}
+ {/* Scanning Indicator */} + {isScanning && ( +
+ 📸 Identificando...
)} @@ -548,144 +393,6 @@ function HomePageContent() { {/* Additional Options */}
- - - {/* ML Detection Settings - Only show in dev mode */} - {isDev && ( -
-
- - Detección IA - {isMLLoading && Cargando...} -
-
-
- -
- {detectionEnabled && ( -
- )} - - {detectionEnabled ? 'Detectando zapatos automáticamente' : 'Click para activar detección IA'} - -
-
- - {/* ML Metrics */} - {detectionEnabled && metrics && ( -
-
FPS: {metrics.fps.toFixed(1)}
-
Inferencia: {metrics.inferenceTime.toFixed(0)}ms
- {metrics.memoryUsage > 0 &&
Memoria: {metrics.memoryUsage.toFixed(0)}MB
} -
- )} - - {/* Detection Confidence Indicator */} - {detectionEnabled && currentDetection && ( -
- -
-
- Confianza - {(currentDetection.confidence * 100).toFixed(1)}% -
-
-
0.8 ? 'bg-green-500' : - currentDetection.confidence > 0.6 ? 'bg-yellow-500' : 'bg-red-500' - }`} - style={{ width: `${currentDetection.confidence * 100}%` }} - /> -
-
- Bajo - Alto -
-
-
- )} - - {/* Other settings */} - {detectionEnabled && config && ( -
-
- - updateConfig({ confidenceThreshold: value })} - disabled={!detectionEnabled} - className="mt-2" - /> -
-
- - updateConfig({ frameSkip: value })} - disabled={!detectionEnabled} - className="mt-2" - /> -
-
- - updateConfig({ enableContinuous: checked })} - disabled={!detectionEnabled} - /> -
-
- - updateConfig({ enableTrigger: checked })} - disabled={!detectionEnabled} - /> -
-
- )} - - {/* Detection Status */} - {currentDetection && ( -
- 🎯 Zapato detectado (confianza: {(currentDetection.confidence * 100).toFixed(1)}%) -
- )} - - {mlError && ( -
- ❌ {mlError} -
- )} -
-
- )} - - {/* App Info */}

Smart Store Assistant

diff --git a/lib/ml-classification.ts b/lib/ml-classification.ts deleted file mode 100644 index 9e0feb1..0000000 --- a/lib/ml-classification.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { Shoe } from "./shoe-database"; - -/** - * Simulates detecting a shoe from a list of possible shoes. - * In a real application, this would involve a machine learning model. - * @param allShoes The list of all shoes in the database. - * @returns A randomly selected shoe. - */ -export function detectShoe(allShoes: Shoe[]): Shoe | null { - if (allShoes.length === 0) { - return null; - } - - // Simulate detection by picking a random shoe from the database. - const randomIndex = Math.floor(Math.random() * allShoes.length); - return allShoes[randomIndex]; -} \ No newline at end of file diff --git a/lib/ml/detection-engine.ts b/lib/ml/detection-engine.ts deleted file mode 100644 index 6ecd587..0000000 --- a/lib/ml/detection-engine.ts +++ /dev/null @@ -1,388 +0,0 @@ -import type { DetectionConfig, DetectionResult, DetectionMetrics, DetectionMode } from './types'; -import { DetectionWorkerManager } from './detection-worker-manager'; -import { detectDeviceCapabilities, getRecommendedConfig } from './device-capabilities'; -import { skuIdentificationService } from '../sku-identification'; - -// Extend window interface for TensorFlow.js -declare global { - interface Window { - tf: unknown; - } -} - -/** - * Main detection engine that coordinates continuous and trigger detection - */ -export class DetectionEngine { - private workerManager: DetectionWorkerManager; - private config: DetectionConfig; - private model: unknown = null; // TensorFlow.js model instance - - // Detection state - private isRunning = false; - private detectionMode: DetectionMode = 'hybrid'; - private frameSkipCounter = 0; - private detectionCount = 0; - - // Temporal filtering - private detectionHistory: DetectionResult[] = []; - private lastValidDetection: DetectionResult | null = null; - - // Performance tracking - private metrics: DetectionMetrics = { - fps: 0, - inferenceTime: 0, - memoryUsage: 0 - }; - - // Event callbacks - private onDetectionCallback?: (detection: DetectionResult | null) => void; - private onMetricsCallback?: (metrics: DetectionMetrics) => void; - private lastDetectionCallbackTime?: number; - - constructor() { - console.log('🏗️ DetectionEngine constructor called'); - this.workerManager = new DetectionWorkerManager(); - - - // Get device-optimized configuration - const capabilities = detectDeviceCapabilities(); - this.config = getRecommendedConfig(capabilities); - - console.log('✅ Detection engine initialized', { capabilities, config: this.config }); - } - - /** - * Initialize the detection engine with a specific model - */ - async initialize(modelVariant?: 'quantized' | 'standard' | 'full', onProgress?: (progress: number) => void): Promise { - const variant = modelVariant || this.config.modelVariant; - - console.log(`🔧 Initializing detection engine with ${variant} model...`); - - try { - // Load the model into the worker - console.log('📥 Loading model into worker...'); - await this.workerManager.loadModel(variant, onProgress); - - // Configure the worker with current settings - console.log('⚙️ Configuring worker...'); - await this.workerManager.configure(this.config); - - console.log(`✅ Detection engine initialized with ${variant} model`); - - } catch (error) { - console.error('❌ Failed to initialize detection engine:', error); - throw error; - } - } - - /** - * Start continuous detection - */ - startContinuousDetection(videoElement: HTMLVideoElement): void { - console.log('🚀 startContinuousDetection called:', { - isRunning: this.isRunning, - enableContinuous: this.config.enableContinuous, - videoElement: !!videoElement - }); - - if (this.isRunning) { - console.warn('Detection already running'); - return; - } - - this.isRunning = true; - this.detectionMode = this.config.enableContinuous ? 'continuous' : 'trigger'; - - if (this.config.enableContinuous) { - console.log('🔄 Starting continuous detection loop...'); - this.runContinuousLoop(videoElement); - } - - console.log(`✅ Started detection in ${this.detectionMode} mode`); - } - - /** - * Stop continuous detection - */ - stopContinuousDetection(): void { - this.isRunning = false; - this.frameSkipCounter = 0; - this.detectionHistory = []; - console.log('Stopped continuous detection'); - } - - /** - * Perform single trigger detection - higher quality/confidence than continuous - */ - async triggerDetection(videoElement: HTMLVideoElement): Promise { - const startTime = performance.now(); - - try { - console.log('🎯 Starting trigger detection (high quality)'); - - // Capture image data for trigger detection (high quality) - const imageData = this.captureVideoFrame(videoElement, true); - - // Use worker manager for detection - const detections = await this.workerManager.detect(imageData); - const detection = detections.length > 0 ? detections[0] : null; - - // Update metrics - this.metrics.inferenceTime = performance.now() - startTime; - - console.log('✅ Trigger detection completed:', detection); - - // Trigger callbacks for immediate display - if (this.onDetectionCallback && detection) { - this.onDetectionCallback(detection); - } - - return detection; - - } catch (error) { - console.error('❌ Trigger detection failed:', error); - throw error; - } - } - - /** - * Identify product SKU from detected shoe - * @param videoElement - Video element to capture image from - * @returns Promise - Product SKU if identified successfully - */ - async identifyProductSKU(videoElement: HTMLVideoElement): Promise { - try { - console.log('🔍 Starting product SKU identification...'); - - // Capture high-quality image for SKU identification - const imageData = this.captureVideoFrame(videoElement, true); - - // Call SKU identification service - const sku = await skuIdentificationService.identifySKU(imageData); - - if (sku) { - console.log('✅ Product SKU identified:', sku); - } else { - console.log('❌ No valid SKU found'); - } - - return sku; - - } catch (error) { - console.error('❌ SKU identification failed:', error); - return null; - } - } - - /** - * Continuous detection loop - */ - private async runContinuousLoop(videoElement: HTMLVideoElement): Promise { - if (!this.isRunning) return; - - // Frame skipping logic - this.frameSkipCounter++; - if (this.frameSkipCounter < this.config.frameSkip) { - // Skip this frame, schedule next iteration - requestAnimationFrame(() => this.runContinuousLoop(videoElement)); - return; - } - - this.frameSkipCounter = 0; - // Only log every 10th detection to reduce noise - if (this.detectionCount % 10 === 0) { - console.log(`🔄 Continuous detection running... (${this.detectionCount} inferences)`); - } - - try { - const startTime = performance.now(); - - // Capture image data for continuous detection (lower quality) - const imageData = this.captureVideoFrame(videoElement, false); - - // Use worker manager for detection - const detections = await this.workerManager.detect(imageData); - const detection = detections.length > 0 ? detections[0] : null; - - const inferenceTime = performance.now() - startTime; - console.log('⚡ Continuous detection completed:', { time: inferenceTime, detection }); - - // Apply temporal filtering - const validDetection = this.applyTemporalFiltering(detection); - - // Update metrics - this.updateMetrics(inferenceTime); - - // Trigger callbacks (only if we have a valid detection) - // Use a debounced approach to avoid too frequent updates - if (this.onDetectionCallback) { - // Only update if it's been at least 100ms since last detection callback for continuous - const now = Date.now(); - if (!this.lastDetectionCallbackTime || now - this.lastDetectionCallbackTime > 100) { - this.onDetectionCallback(validDetection); - this.lastDetectionCallbackTime = now; - } - } - - } catch (error) { - console.error('Continuous detection error:', error); - } - - // Schedule next iteration - if (this.isRunning) { - requestAnimationFrame(() => this.runContinuousLoop(videoElement)); - } - } - - /** - * Capture frame from video element - */ - private captureVideoFrame(videoElement: HTMLVideoElement, highQuality: boolean): ImageData { - const canvas = document.createElement('canvas'); - const ctx = canvas.getContext('2d')!; - - // Use different resolutions based on detection mode - const [targetWidth, targetHeight] = highQuality - ? [640, 480] // High quality for trigger detection - : [320, 240]; // Lower quality for continuous detection - - canvas.width = targetWidth; - canvas.height = targetHeight; - - // Draw video frame to canvas - ctx.drawImage(videoElement, 0, 0, targetWidth, targetHeight); - - // Extract image data - const imageData = ctx.getImageData(0, 0, targetWidth, targetHeight); - - // Cleanup - canvas.remove(); - - return imageData; - } - - /** - * Apply temporal consistency filtering to reduce false positives - */ - private applyTemporalFiltering(detection: DetectionResult | null): DetectionResult | null { - if (!detection) { - // No detection - decay previous detections - this.detectionHistory = this.detectionHistory.filter(d => - Date.now() - d.timestamp < 1000 // Keep detections from last second - ); - - // If we have recent consistent detections, continue showing them - if (this.detectionHistory.length >= 2) { - return this.lastValidDetection; - } - - return null; - } - - // Add current detection to history - this.detectionHistory.push(detection); - - // Keep only recent detections (last 3 seconds) - this.detectionHistory = this.detectionHistory.filter(d => - Date.now() - d.timestamp < 3000 - ); - - // Check temporal consistency - const recentDetections = this.detectionHistory.filter(d => - Date.now() - d.timestamp < 500 // Last 500ms - ); - - if (recentDetections.length >= 2) { - // We have consistent detections - this is likely valid - this.lastValidDetection = detection; - return detection; - } - - // Not enough temporal consistency yet - return this.lastValidDetection; - } - - /** - * Update performance metrics - */ - private updateMetrics(inferenceTime: number): void { - this.detectionCount++; - this.metrics = { - fps: 0, // Placeholder, as PerformanceMonitor is removed - inferenceTime: inferenceTime, - memoryUsage: this.getMemoryUsage() - }; - - if (this.onMetricsCallback) { - this.onMetricsCallback(this.metrics); - } - } - - - - /** - * Get current memory usage (rough estimate) - */ - private getMemoryUsage(): number { - const memInfo = (performance as Performance & { memory?: { usedJSHeapSize: number } }).memory; - if (memInfo && memInfo.usedJSHeapSize) { - return memInfo.usedJSHeapSize / (1024 * 1024); // MB - } - return 0; - } - - - /** - * Set detection callback - */ - onDetection(callback: (detection: DetectionResult | null) => void): void { - this.onDetectionCallback = callback; - } - - /** - * Set metrics callback - */ - onMetrics(callback: (metrics: DetectionMetrics) => void): void { - this.onMetricsCallback = callback; - } - - /** - * Update configuration - */ - async updateConfig(newConfig: Partial): Promise { - this.config = { ...this.config, ...newConfig }; - await this.workerManager.configure(this.config); - console.log('Configuration updated:', this.config); - } - - /** - * Get current configuration - */ - getConfig(): DetectionConfig { - return { ...this.config }; - } - - /** - * Get current metrics - */ - getMetrics(): DetectionMetrics { - return { ...this.metrics }; - } - - /** - * Check if detection is running - */ - isDetectionRunning(): boolean { - return this.isRunning; - } - - /** - * Destroy the detection engine - */ - destroy(): void { - this.stopContinuousDetection(); - this.workerManager.destroy(); - } -} \ No newline at end of file diff --git a/lib/ml/detection-worker-manager.ts b/lib/ml/detection-worker-manager.ts deleted file mode 100644 index d8fc65f..0000000 --- a/lib/ml/detection-worker-manager.ts +++ /dev/null @@ -1,216 +0,0 @@ -import type { DetectionConfig, DetectionResult, DetectionMetrics, WorkerMessage, WorkerResponse } from './types'; -import { ModelCache } from './model-cache'; -import { MODEL_VARIANTS } from './model-config'; - -/** - * Manages the detection worker and handles communication - */ -export class DetectionWorkerManager { - private worker: Worker | null = null; - private messageId = 0; - private pendingMessages = new Map void; reject: (reason?: any) => void }>(); - private modelCache = new ModelCache(); - private isWorkerReady = false; - - constructor() { - this.initializeWorker(); - } - - private async initializeWorker() { - try { - // Create worker from the detection worker file - this.worker = new Worker( - new URL('../../workers/detection-worker.ts', import.meta.url), - { type: 'module' } - ); - - this.worker.onmessage = (event: MessageEvent) => { - this.handleWorkerMessage(event.data); - }; - - this.worker.onerror = (error) => { - console.error('Worker error:', error); - this.isWorkerReady = false; - }; - - this.isWorkerReady = true; - console.log('Detection worker initialized'); - await this.sendMessage('INITIALIZE', undefined); - - } catch (error) { - console.error('Failed to initialize worker:', error); - this.isWorkerReady = false; - } - } - - private handleWorkerMessage(message: WorkerResponse) { - const { type, id } = message; - - const pending = this.pendingMessages.get(id); - if (!pending) { - console.warn('Received response for unknown message ID:', id); - return; - } - - this.pendingMessages.delete(id); - - if (type === 'ERROR') { - pending.reject(new Error((message as { error: string }).error)); - } else if (type === 'DETECTION_RESULT') { - const detectionMessage = message as { result: DetectionResult | null }; - pending.resolve({ result: detectionMessage.result }); - } else if (type === 'INITIALIZED') { - pending.resolve(undefined); - } else if (type === 'METRICS_UPDATE') { - pending.resolve({ metrics: (message as { metrics: Partial }).metrics }); - } else if (type === 'LOADED_MODEL') { - pending.resolve(undefined); - } else if (type === 'CONFIGURED') { - pending.resolve(undefined); - } else { - pending.resolve(message); - } - } - - private async sendMessage(type: WorkerMessage['type'], payload: unknown): Promise { - if (!this.worker || !this.isWorkerReady) { - throw new Error('Worker not available'); - } - - const id = (this.messageId++).toString(); - - return new Promise((resolve, reject) => { - this.pendingMessages.set(id, { resolve, reject }); - - let message: WorkerMessage & { id: string }; - - if (type === 'INITIALIZE') { - message = { type, id }; - } else if (type === 'DETECT') { - message = { type, imageData: (payload as { imageData: ImageData }).imageData, id }; - } else if (type === 'UPDATE_CONFIG' || type === 'CONFIGURE') { - message = { type, config: payload as DetectionConfig, id }; - } else if (type === 'LOAD_MODEL') { - const modelPayload = payload as { variant: 'quantized' | 'standard' | 'full'; modelData: ArrayBuffer }; - message = { type, variant: modelPayload.variant, modelData: modelPayload.modelData, id }; - } else { - throw new Error(`Unknown message type for sendMessage: ${type}`); - } - - this.worker!.postMessage(message); - - // Timeout after 30 seconds - setTimeout(() => { - if (this.pendingMessages.has(id)) { - this.pendingMessages.delete(id); - reject(new Error('Worker message timeout')); - } - }, 90000); - }); - } - - /** - * Load a model into the worker - */ - async loadModel(variant: 'quantized' | 'standard' | 'full', onProgress?: (progress: number) => void): Promise { - const modelInfo = MODEL_VARIANTS[variant]; - - try { - // Get model data from cache or download - const modelData = await this.modelCache.getModel(variant, modelInfo, onProgress); - - // Send model data to worker - await this.sendMessage('LOAD_MODEL', { - variant, - modelData - }); - - console.log(`Model ${variant} loaded successfully`); - - } catch (error) { - console.error(`Failed to load model ${variant}:`, error); - throw error; - } - } - - /** - * Configure the detection settings - */ - async configure(config: DetectionConfig): Promise { - await this.sendMessage('CONFIGURE', config); - } - - /** - * Perform detection on an image - */ - async detect(imageData: ImageData): Promise { - if (!this.isWorkerReady) { - throw new Error('Worker not ready'); - } - - try { - const results = await this.sendMessage<{ result: DetectionResult | null }>('DETECT', { imageData }); - - // Handle the case where results or results.result is undefined - if (!results || results.result === undefined || results.result === null) { - return []; - } - - return [results.result]; - } catch (error) { - console.error('Detection failed:', error); - throw error; - } - } - - /** - * Get worker metrics - */ - async getMetrics(): Promise { - // Metrics are tracked locally, no need to query worker - return {}; - } - - /** - * Check if worker is ready - */ - isReady(): boolean { - return this.isWorkerReady; - } - - /** - * Terminate the worker - */ - destroy() { - if (this.worker) { - this.worker.terminate(); - this.worker = null; - this.isWorkerReady = false; - } - - // Reject all pending messages - this.pendingMessages.forEach(({ reject }) => { - reject(new Error('Worker terminated')); - }); - this.pendingMessages.clear(); - } -} - -/** - * Singleton instance manager - */ -let workerManager: DetectionWorkerManager | null = null; - -export function getDetectionWorkerManager(): DetectionWorkerManager { - if (!workerManager) { - workerManager = new DetectionWorkerManager(); - } - return workerManager; -} - -export function destroyDetectionWorkerManager() { - if (workerManager) { - workerManager.destroy(); - workerManager = null; - } -} \ No newline at end of file diff --git a/lib/ml/device-capabilities.ts b/lib/ml/device-capabilities.ts deleted file mode 100644 index c31fcd7..0000000 --- a/lib/ml/device-capabilities.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { DeviceCapabilities, DeviceTier } from './types'; -import { DEFAULT_CONFIG } from './model-config'; - -/** - * Detects device capabilities to suggest an optimal performance configuration. - */ -export function detectDeviceCapabilities(): DeviceCapabilities { - const hasWebGL = (() => { - try { - const canvas = document.createElement('canvas'); - return !!(window.WebGLRenderingContext && (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'))); - } catch { - return false; - } - })(); - - const cpuCores = navigator.hardwareConcurrency || 2; // Default to 2 if undefined - // @ts-expect-error - deviceMemory is not in all browsers - const memory = navigator.deviceMemory || 1; // Default to 1GB if undefined - - let tier: DeviceTier; - if (cpuCores >= 8 && memory >= 4) { - tier = 'high'; - } else if (cpuCores >= 4 && memory >= 2) { - tier = 'mid'; - } else { - tier = 'low'; - } - - return { tier, hasWebGL, cpuCores, memory }; -} - -/** - * Gets a recommended configuration based on the detected device tier. - * @param capabilities The detected device capabilities. - * @returns A full DetectionConfig with recommended settings. - */ -export function getRecommendedConfig(capabilities: DeviceCapabilities): typeof DEFAULT_CONFIG { - const baseConfig = { ...DEFAULT_CONFIG }; - - switch (capabilities.tier) { - case 'high': - return { - ...baseConfig, - modelVariant: 'standard', - frameSkip: 6, - confidenceThreshold: 0.8, - }; - case 'mid': - return { - ...baseConfig, - modelVariant: 'standard', - frameSkip: 6, - confidenceThreshold: 0.8, - }; - case 'low': - default: - return { - ...baseConfig, - modelVariant: 'quantized', - frameSkip: 6, - confidenceThreshold: 0.8, - }; - } -} diff --git a/lib/ml/inference-pipeline.ts b/lib/ml/inference-pipeline.ts deleted file mode 100644 index 55e93b2..0000000 --- a/lib/ml/inference-pipeline.ts +++ /dev/null @@ -1,114 +0,0 @@ -import type { DetectionResult } from './types'; -import { VALIDATION_RULES } from './model-config'; - -/** - * A temporal filter to smooth detections and reduce flickering. - */ -class TemporalFilter { - private history: (DetectionResult | null)[] = []; - private frameCount = 0; - - constructor(private consistencyFrames: number) { - this.history = new Array(consistencyFrames).fill(null); - } - - add(detection: DetectionResult | null): DetectionResult | null { - this.history.shift(); - this.history.push(detection); - - const recentDetections = this.history.filter(d => d !== null); - if (recentDetections.length >= this.consistencyFrames) { - // Return the most confident detection from the recent history - return recentDetections.reduce((prev, current) => (prev!.confidence > current!.confidence ? prev : current)); - } - - return null; - } -} - -/** - * The InferencePipeline class handles post-processing of model outputs, - * including filtering, validation, and temporal smoothing to prevent false positives. - */ -export class InferencePipeline { - private temporalFilter: TemporalFilter; - - constructor() { - this.temporalFilter = new TemporalFilter(VALIDATION_RULES.temporalConsistencyFrames); - } - - /** - * Processes the raw output from the TensorFlow.js model. - * @param boxes Raw bounding boxes. - * @param scores Raw confidence scores. - * @param classes Raw class indices. - * @param confidenceThreshold The current confidence threshold. - * @returns A single, validated DetectionResult or null. - */ - process(boxes: number[], scores: number[], classes: number[], confidenceThreshold: number): DetectionResult | null { - const detections: DetectionResult[] = []; - - // Process up to 5 detections like the working implementation - for (let i = 0; i < Math.min(5, scores.length); i++) { - const score = scores[i]; - - // Convert to percentage and check threshold like working implementation - const scorePercent = score * 100; - if (scorePercent < (confidenceThreshold * 100)) continue; - - // Extract bounding box [y_min, x_min, y_max, x_max] like working implementation - const yMin = boxes[i * 4]; - const xMin = boxes[i * 4 + 1]; - const yMax = boxes[i * 4 + 2]; - const xMax = boxes[i * 4 + 3]; - - // Convert to [x, y, width, height] format - const bbox: [number, number, number, number] = [xMin, yMin, xMax - xMin, yMax - yMin]; - - const detection: DetectionResult = { - bbox, - confidence: score, - class: 'shoe', // Assume all detections are shoes - timestamp: Date.now() - }; - - if (this.isValid(detection)) { - detections.push(detection); - } - } - - if (detections.length === 0) { - return this.temporalFilter.add(null); - } - - // Get the single best detection - const bestDetection = detections.reduce((prev, current) => (prev.confidence > current.confidence ? prev : current)); - - return this.temporalFilter.add(bestDetection); - } - - /** - * Validates a detection against a set of rules. - * @param detection The detection to validate. - * @returns True if the detection is valid, false otherwise. - */ - private isValid(detection: DetectionResult): boolean { - const { bbox } = detection; - const [, , width, height] = bbox; - - // Bounding box size validation (relative to a 320x320 input) - const boxPixelWidth = width * 320; - const boxPixelHeight = height * 320; - if (boxPixelWidth < VALIDATION_RULES.minBoundingBoxSize || boxPixelHeight < VALIDATION_RULES.minBoundingBoxSize) { - return false; - } - - // Aspect ratio validation - const aspectRatio = boxPixelWidth / boxPixelHeight; - if (aspectRatio < VALIDATION_RULES.aspectRatioRange[0] || aspectRatio > VALIDATION_RULES.aspectRatioRange[1]) { - return false; - } - - return true; - } -} diff --git a/lib/ml/model-cache.ts b/lib/ml/model-cache.ts deleted file mode 100644 index 48c4489..0000000 --- a/lib/ml/model-cache.ts +++ /dev/null @@ -1,269 +0,0 @@ -import type { ModelInfo } from './types'; - -const DB_NAME = 'ShoeDetectionModels'; -const DB_VERSION = 1; -const STORE_NAME = 'models'; - -export interface CachedModel { - id: string; - variant: 'quantized' | 'standard' | 'full'; - data: ArrayBuffer; - metadata: ModelInfo; - timestamp: number; - version: string; -} - -/** - * IndexedDB-based model cache for TensorFlow.js models - */ -export class ModelCache { - private db: IDBDatabase | null = null; - private initPromise: Promise | null = null; - - constructor() { - this.initPromise = this.init(); - } - - /** - * Initialize IndexedDB - */ - private async init(): Promise { - return new Promise((resolve, reject) => { - const request = indexedDB.open(DB_NAME, DB_VERSION); - - request.onerror = () => { - console.error('Failed to open IndexedDB:', request.error); - reject(request.error); - }; - - request.onsuccess = () => { - this.db = request.result; - resolve(); - }; - - request.onupgradeneeded = (event) => { - const db = (event.target as IDBOpenDBRequest).result; - - // Create models store - if (!db.objectStoreNames.contains(STORE_NAME)) { - const store = db.createObjectStore(STORE_NAME, { keyPath: 'id' }); - store.createIndex('variant', 'variant', { unique: false }); - store.createIndex('timestamp', 'timestamp', { unique: false }); - } - }; - }); - } - - /** - * Ensure database is ready - */ - private async ensureReady(): Promise { - if (this.initPromise) { - await this.initPromise; - } - if (!this.db) { - throw new Error('Database not initialized'); - } - } - - /** - * Cache a model in IndexedDB - */ - async cacheModel(variant: 'quantized' | 'standard' | 'full', modelData: ArrayBuffer, metadata: ModelInfo): Promise { - await this.ensureReady(); - - return new Promise((resolve, reject) => { - const transaction = this.db!.transaction([STORE_NAME], 'readwrite'); - const store = transaction.objectStore(STORE_NAME); - - const cachedModel: CachedModel = { - id: `shoe-detection-${variant}`, - variant, - data: modelData, - metadata, - timestamp: Date.now(), - version: '1.0.0' - }; - - const request = store.put(cachedModel); - - request.onsuccess = () => { - console.log(`Model ${variant} cached successfully`); - resolve(); - }; - - request.onerror = () => { - console.error(`Failed to cache model ${variant}:`, request.error); - reject(request.error); - }; - }); - } - - /** - * Retrieve a cached model - */ - async getCachedModel(variant: 'quantized' | 'standard' | 'full'): Promise { - await this.ensureReady(); - - return new Promise((resolve, reject) => { - const transaction = this.db!.transaction([STORE_NAME], 'readonly'); - const store = transaction.objectStore(STORE_NAME); - const request = store.get(`shoe-detection-${variant}`); - - request.onsuccess = () => { - resolve(request.result || null); - }; - - request.onerror = () => { - reject(request.error); - }; - }); - } - - /** - * Check if a model is cached and up to date - */ - async isModelCached(variant: 'quantized' | 'standard' | 'full', requiredVersion: string): Promise { - try { - const cached = await this.getCachedModel(variant); - return cached !== null && cached.version === requiredVersion; - } catch (error) { - console.error('Error checking cached model:', error); - return false; - } - } - - /** - * Download and cache a model - */ - async downloadAndCacheModel(variant: 'quantized' | 'standard' | 'full', modelInfo: ModelInfo, onProgress?: (progress: number) => void): Promise { - console.log(`Downloading model ${variant} from ${modelInfo.url}`); - - const response = await fetch(modelInfo.url); - - if (!response.ok) { - throw new Error(`Failed to download model: ${response.statusText}`); - } - - const contentLength = response.headers.get('content-length'); - const total = contentLength ? parseInt(contentLength, 10) : 0; - let loaded = 0; - - const reader = response.body?.getReader(); - const chunks: Uint8Array[] = []; - - if (!reader) { - throw new Error('Failed to get response reader'); - } - - while (true) { - const { done, value } = await reader.read(); - - if (done) break; - - chunks.push(value); - loaded += value.length; - - if (onProgress && total > 0) { - onProgress((loaded / total) * 100); - } - } - - // Combine chunks into single ArrayBuffer - const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0); - const result = new Uint8Array(totalLength); - let offset = 0; - - for (const chunk of chunks) { - result.set(chunk, offset); - offset += chunk.length; - } - - const modelData = result.buffer; - - // Cache the model - await this.cacheModel(variant, modelData, modelInfo); - - return modelData; - } - - /** - * Get or download a model - */ - async getModel(variant: 'quantized' | 'standard' | 'full', modelInfo: ModelInfo, onProgress?: (progress: number) => void): Promise { - // Check if model is already cached - const isCache = await this.isModelCached(variant, '1.0.0'); - - if (isCache) { - console.log(`Using cached model ${variant}`); - const cached = await this.getCachedModel(variant); - return cached!.data; - } - - // Download and cache the model - return await this.downloadAndCacheModel(variant, modelInfo, onProgress); - } - - /** - * Clear old cached models - */ - async clearOldModels(maxAge: number = 7 * 24 * 60 * 60 * 1000): Promise { - await this.ensureReady(); - - const cutoffTime = Date.now() - maxAge; - - return new Promise((resolve, reject) => { - const transaction = this.db!.transaction([STORE_NAME], 'readwrite'); - const store = transaction.objectStore(STORE_NAME); - const index = store.index('timestamp'); - const range = IDBKeyRange.upperBound(cutoffTime); - - const request = index.openCursor(range); - - request.onsuccess = (event) => { - const cursor = (event.target as IDBRequest).result; - - if (cursor) { - cursor.delete(); - cursor.continue(); - } else { - console.log('Old models cleared'); - resolve(); - } - }; - - request.onerror = () => { - reject(request.error); - }; - }); - } - - /** - * Get cache storage usage - */ - async getCacheStats(): Promise<{ totalSize: number; modelCount: number; models: string[] }> { - await this.ensureReady(); - - return new Promise((resolve, reject) => { - const transaction = this.db!.transaction([STORE_NAME], 'readonly'); - const store = transaction.objectStore(STORE_NAME); - const request = store.getAll(); - - request.onsuccess = () => { - const models = request.result as CachedModel[]; - const totalSize = models.reduce((sum, model) => sum + model.data.byteLength, 0); - const modelNames = models.map(m => m.variant); - - resolve({ - totalSize, - modelCount: models.length, - models: modelNames - }); - }; - - request.onerror = () => { - reject(request.error); - }; - }); - } -} \ No newline at end of file diff --git a/lib/ml/model-config.ts b/lib/ml/model-config.ts deleted file mode 100644 index d3c08fb..0000000 --- a/lib/ml/model-config.ts +++ /dev/null @@ -1,57 +0,0 @@ -import type { DetectionConfig, ModelInfo } from './types'; - -/** - * Configuration for different model variants. - * I've used the models from the original repo and another one from TensorFlow Hub. - */ -export const MODEL_VARIANTS: Record<'quantized' | 'standard' | 'full', ModelInfo> = { - quantized: { - variant: 'quantized', - url: '/models/model.json', - size: 2 * 1024 * 1024, // ~2MB - name: 'SSD-MobileNetV2 Quantized', - description: 'Fastest, for continuous detection.' - }, - standard: { - variant: 'standard', - url: '/models/model.json', - size: 2 * 1024 * 1024, // Same model, different configs - name: 'SSD-MobileNetV2 Standard', - description: 'Balanced speed and accuracy.' - }, - full: { - variant: 'full', - url: '/models/model.json', - size: 2 * 1024 * 1024, // Same model, different configs - name: 'SSD-MobileNetV2 Full', - description: 'Most accurate, for on-demand scan.' - } -}; - -/** - * Default detection configuration. - */ -export const DEFAULT_CONFIG: DetectionConfig = { - frameSkip: 6, - confidenceThreshold: 0.8, // Default to 80% confidence - modelVariant: 'standard', - maxDetections: 5, // Match the working implementation (process up to 5 detections) - inputSize: [300, 300], // Match the working implementation - enableContinuous: true, - enableTrigger: true, -}; - -/** - * Class labels for the models. - * IMPORTANT: This must match the order of the model's output classes. - */ -export const CLASS_LABELS = ['shoe']; - -/** - * Rules to validate detections and reduce false positives. - */ -export const VALIDATION_RULES = { - minBoundingBoxSize: 30, // Minimum pixel width/height of a bounding box - aspectRatioRange: [0.5, 2.0], // Plausible aspect ratio (width / height) for a shoe - temporalConsistencyFrames: 3, // Must be detected in N consecutive frames -}; \ No newline at end of file diff --git a/lib/ml/types.ts b/lib/ml/types.ts deleted file mode 100644 index 1bbf078..0000000 --- a/lib/ml/types.ts +++ /dev/null @@ -1,84 +0,0 @@ -/** - * This file contains all the TypeScript interfaces for the ML detection system. - */ - -/** - * Configuration for the detection engine. - */ -export interface DetectionConfig { - frameSkip: number; - confidenceThreshold: number; - modelVariant: 'quantized' | 'standard' | 'full'; - maxDetections: number; - inputSize: [number, number]; - enableContinuous: boolean; - enableTrigger: boolean; -} - -/** - * Information about a specific model variant. - */ -export interface ModelInfo { - variant: 'quantized' | 'standard' | 'full'; - url: string; - size: number; // in bytes - name: string; - description: string; -} - -/** - * Represents a single detected object. - */ -export interface DetectionResult { - bbox: [number, number, number, number]; // [x, y, width, height] - confidence: number; - class: string; - timestamp: number; -} - -/** - * Defines the performance tier of the user's device. - */ -export type DeviceTier = 'low' | 'mid' | 'high'; - -/** - * Holds information about the device's capabilities. - */ -export interface DeviceCapabilities { - tier: DeviceTier; - hasWebGL: boolean; - cpuCores: number; - memory: number; // in GB -} - -/** - * Performance metrics for the detection engine. - */ -export interface DetectionMetrics { - fps: number; - inferenceTime: number; - memoryUsage: number; // in MB -} - -/** - * Detection mode type. - */ -export type DetectionMode = 'continuous' | 'trigger' | 'hybrid'; - -/** - * Types for messages sent to and from the detection worker. - */ -export type WorkerMessage = - | { type: 'INITIALIZE' } - | { type: 'DETECT'; imageData: ImageData } - | { type: 'UPDATE_CONFIG'; config: DetectionConfig } - | { type: 'LOAD_MODEL'; variant: 'quantized' | 'standard' | 'full'; modelData: ArrayBuffer } - | { type: 'CONFIGURE'; config: DetectionConfig }; - -export type WorkerResponse = - | { type: 'INITIALIZED'; id: string } - | { type: 'DETECTION_RESULT'; result: DetectionResult | null; id: string } - | { type: 'METRICS_UPDATE'; metrics: Partial; id: string } - | { type: 'ERROR'; error: string; id: string } - | { type: 'LOADED_MODEL'; id: string } - | { type: 'CONFIGURED'; id: string }; diff --git a/lib/ml/use-detection.ts b/lib/ml/use-detection.ts deleted file mode 100644 index b59cc03..0000000 --- a/lib/ml/use-detection.ts +++ /dev/null @@ -1,307 +0,0 @@ -import { useEffect, useRef, useState, useCallback } from 'react'; -import type { DetectionConfig, DetectionResult, DetectionMetrics } from './types'; -import { DetectionEngine } from './detection-engine'; - -interface UseDetectionOptions { - modelVariant?: 'quantized' | 'standard' | 'full'; - enableContinuous?: boolean; - enableTrigger?: boolean; - onDetection?: (detection: DetectionResult | null) => void; - onError?: (error: Error) => void; -} - -interface UseDetectionReturn { - // State - isLoading: boolean; - isDetecting: boolean; - currentDetection: DetectionResult | null; - metrics: DetectionMetrics | null; - error: string | null; - - // Actions - initialize: (videoElement: HTMLVideoElement) => Promise; - startContinuous: () => void; - stopContinuous: () => void; - triggerDetection: () => Promise; - updateConfig: (config: Partial) => Promise; - setDetectionCallback: (callback: (detection: DetectionResult | null) => void) => void; - - // Config - config: DetectionConfig | null; - - // Engine reference - detectionEngine: DetectionEngine | null; -} - -/** - * React hook for shoe detection functionality - */ -export function useDetection(options: UseDetectionOptions = {}): UseDetectionReturn { - const { - modelVariant = 'standard', - enableContinuous = true, - enableTrigger = true, - onDetection, - onError - } = options; - - // Store the callback in a ref so it can be updated - const detectionCallbackRef = useRef<((detection: DetectionResult | null) => void) | undefined>(onDetection); - - // State - const [isLoading, setIsLoading] = useState(false); - const [isDetecting, setIsDetecting] = useState(false); - const [currentDetection, setCurrentDetection] = useState(null); - const [metrics, setMetrics] = useState(null); - const [error, setError] = useState(null); - const [config, setConfig] = useState(null); - - // Refs - const detectionEngineRef = useRef(null); - const videoElementRef = useRef(null); - const initializationPromiseRef = useRef | null>(null); - - // Initialize detection engine - const initialize = useCallback(async (videoElement: HTMLVideoElement): Promise => { - console.log('🚀 useDetection.initialize called:', { videoElement: !!videoElement }); - - // Prevent multiple initializations - if (initializationPromiseRef.current) { - console.log('⚠️ Initialization already in progress, returning existing promise'); - return initializationPromiseRef.current; - } - - setIsLoading(true); - setError(null); - - const initPromise = (async () => { - try { - console.log('🏗️ Creating detection engine...'); - // Create detection engine - const engine = new DetectionEngine(); - detectionEngineRef.current = engine; - videoElementRef.current = videoElement; - - // Set up event listeners - engine.onDetection((detection) => { - setCurrentDetection(detection); - detectionCallbackRef.current?.(detection); - }); - - engine.onMetrics((newMetrics) => { - setMetrics(newMetrics); - }); - - // Initialize with progress tracking - await engine.initialize(modelVariant, (progress) => { - // You could add progress state here if needed - console.log(`Model loading: ${progress.toFixed(1)}%`); - }); - - // Get initial configuration - const initialConfig = engine.getConfig(); - setConfig(initialConfig); - - console.log('Detection hook initialized successfully'); - return engine; // Return engine instance - - } catch (err) { - const error = err instanceof Error ? err : new Error('Unknown initialization error'); - console.error('Detection initialization failed:', error); - setError(error.message); - onError?.(error); - throw error; - } finally { - setIsLoading(false); - } - })(); - - initializationPromiseRef.current = initPromise; - return initPromise; - }, [modelVariant, onDetection, onError]); - - // Start continuous detection - const startContinuous = useCallback(() => { - console.log('🔄 useDetection.startContinuous called:', { - hasEngine: !!detectionEngineRef.current, - hasVideo: !!videoElementRef.current, - enableContinuous - }); - - if (!detectionEngineRef.current || !videoElementRef.current) { - console.warn('Detection engine or video element not available'); - return; - } - - if (!enableContinuous) { - console.warn('Continuous detection is disabled'); - return; - } - - try { - console.log('🚀 Starting continuous detection...'); - detectionEngineRef.current.startContinuousDetection(videoElementRef.current); - setIsDetecting(true); - setError(null); - console.log('✅ Continuous detection started successfully'); - } catch (err) { - const error = err instanceof Error ? err : new Error('Failed to start continuous detection'); - console.error('❌ Start continuous detection failed:', error); - setError(error.message); - onError?.(error); - } - }, [enableContinuous, onError]); - - // Stop continuous detection - const stopContinuous = useCallback(() => { - if (!detectionEngineRef.current) { - return; - } - - try { - detectionEngineRef.current.stopContinuousDetection(); - setIsDetecting(false); - setCurrentDetection(null); - } catch (err) { - console.error('Stop continuous detection failed:', err); - } - }, []); - - // Trigger single detection - const triggerDetection = useCallback(async (): Promise => { - if (!detectionEngineRef.current || !videoElementRef.current) { - throw new Error('Detection engine or video element not available'); - } - - if (!enableTrigger) { - throw new Error('Trigger detection is disabled'); - } - - try { - setError(null); - const detection = await detectionEngineRef.current.triggerDetection(videoElementRef.current); - - // Update current detection state - setCurrentDetection(detection); - detectionCallbackRef.current?.(detection); - - return detection; - } catch (err) { - const error = err instanceof Error ? err : new Error('Trigger detection failed'); - console.error('Trigger detection failed:', error); - setError(error.message); - onError?.(error); - throw error; - } - }, [enableTrigger, onError]); - - // Update configuration - const updateConfig = useCallback(async (newConfig: Partial): Promise => { - if (!detectionEngineRef.current) { - throw new Error('Detection engine not available'); - } - - try { - await detectionEngineRef.current.updateConfig(newConfig); - const updatedConfig = detectionEngineRef.current.getConfig(); - setConfig(updatedConfig); - setError(null); - } catch (err) { - const error = err instanceof Error ? err : new Error('Failed to update configuration'); - console.error('Update config failed:', error); - setError(error.message); - onError?.(error); - throw error; - } - }, [onError]); - - // Cleanup on unmount - useEffect(() => { - return () => { - if (detectionEngineRef.current) { - detectionEngineRef.current.destroy(); - detectionEngineRef.current = null; - } - initializationPromiseRef.current = null; - videoElementRef.current = null; - }; - }, []); - - return { - // State - isLoading, - isDetecting, - currentDetection, - metrics, - error, - - // Actions - initialize, - startContinuous, - stopContinuous, - triggerDetection, - updateConfig, - setDetectionCallback: (callback: (detection: DetectionResult | null) => void) => { - detectionCallbackRef.current = callback; - }, - - // Config - config, - - // Engine reference - detectionEngine: detectionEngineRef.current - }; -} - -/** - * Hook for detection metrics monitoring - */ -export function useDetectionMetrics(detectionEngine: DetectionEngine | null) { - const [metrics, setMetrics] = useState(null); - - useEffect(() => { - if (!detectionEngine) return; - - detectionEngine.onMetrics(setMetrics); - - // Get initial metrics - const initialMetrics = detectionEngine.getMetrics(); - setMetrics(initialMetrics); - }, [detectionEngine]); - - return metrics; -} - -/** - * Hook for performance monitoring and adjustments - */ -export function usePerformanceOptimization(detectionEngine: DetectionEngine | null) { - const [recommendations, setRecommendations] = useState([]); - - useEffect(() => { - if (!detectionEngine) return; - - const interval = setInterval(() => { - const metrics = detectionEngine.getMetrics(); - const newRecommendations: string[] = []; - - if (metrics.fps < 15) { - newRecommendations.push('Consider increasing frame skip or switching to a lighter model'); - } - - if (metrics.inferenceTime > 100) { - newRecommendations.push('Inference time is high, consider switching to quantized model'); - } - - if (metrics.memoryUsage > 100) { - newRecommendations.push('High memory usage detected'); - } - - setRecommendations(newRecommendations); - }, 5000); // Check every 5 seconds - - return () => clearInterval(interval); - }, [detectionEngine]); - - return recommendations; -} \ No newline at end of file diff --git a/lib/sku-identification.ts b/lib/sku-identification.ts index f5e78b0..5aafb1b 100644 --- a/lib/sku-identification.ts +++ b/lib/sku-identification.ts @@ -13,7 +13,7 @@ interface CacheEntry { */ export class SKUIdentificationService { private cache = new Map(); - private readonly API_ENDPOINT = 'https://pegasus-working-bison.ngrok-free.app/predictfile'; + private readonly API_ENDPOINT = `${process.env.NEXT_PUBLIC_PYTHON_SERVER_URL}/predictfile`; private readonly CACHE_TTL = 60 * 60 * 1000; // 1 hour cache private readonly MAX_CACHE_SIZE = 100; // Prevent memory leaks diff --git a/package-lock.json b/package-lock.json index 9c04773..b3e988e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,9 +12,9 @@ "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-separator": "^1.1.7", + "@radix-ui/react-slider": "^1.3.6", "@radix-ui/react-slot": "^1.2.3", - "@tensorflow/tfjs": "^4.22.0", - "@tensorflow/tfjs-backend-webgl": "^4.22.0", + "@radix-ui/react-switch": "^1.2.6", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "embla-carousel-react": "^8.6.0", @@ -1415,6 +1415,39 @@ } } }, + "node_modules/@radix-ui/react-slider": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", + "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-slot": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", @@ -1433,6 +1466,35 @@ } } }, + "node_modules/@radix-ui/react-switch": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", + "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", @@ -1903,128 +1965,6 @@ "tailwindcss": "4.1.12" } }, - "node_modules/@tensorflow/tfjs": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-4.22.0.tgz", - "integrity": "sha512-0TrIrXs6/b7FLhLVNmfh8Sah6JgjBPH4mZ8JGb7NU6WW+cx00qK5BcAZxw7NCzxj6N8MRAIfHq+oNbPUNG5VAg==", - "license": "Apache-2.0", - "dependencies": { - "@tensorflow/tfjs-backend-cpu": "4.22.0", - "@tensorflow/tfjs-backend-webgl": "4.22.0", - "@tensorflow/tfjs-converter": "4.22.0", - "@tensorflow/tfjs-core": "4.22.0", - "@tensorflow/tfjs-data": "4.22.0", - "@tensorflow/tfjs-layers": "4.22.0", - "argparse": "^1.0.10", - "chalk": "^4.1.0", - "core-js": "3.29.1", - "regenerator-runtime": "^0.13.5", - "yargs": "^16.0.3" - }, - "bin": { - "tfjs-custom-module": "dist/tools/custom_module/cli.js" - } - }, - "node_modules/@tensorflow/tfjs-backend-cpu": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-4.22.0.tgz", - "integrity": "sha512-1u0FmuLGuRAi8D2c3cocHTASGXOmHc/4OvoVDENJayjYkS119fcTcQf4iHrtLthWyDIPy3JiPhRrZQC9EwnhLw==", - "license": "Apache-2.0", - "dependencies": { - "@types/seedrandom": "^2.4.28", - "seedrandom": "^3.0.5" - }, - "engines": { - "yarn": ">= 1.3.2" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.22.0" - } - }, - "node_modules/@tensorflow/tfjs-backend-webgl": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-4.22.0.tgz", - "integrity": "sha512-H535XtZWnWgNwSzv538czjVlbJebDl5QTMOth4RXr2p/kJ1qSIXE0vZvEtO+5EC9b00SvhplECny2yDewQb/Yg==", - "license": "Apache-2.0", - "dependencies": { - "@tensorflow/tfjs-backend-cpu": "4.22.0", - "@types/offscreencanvas": "~2019.3.0", - "@types/seedrandom": "^2.4.28", - "seedrandom": "^3.0.5" - }, - "engines": { - "yarn": ">= 1.3.2" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.22.0" - } - }, - "node_modules/@tensorflow/tfjs-converter": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-4.22.0.tgz", - "integrity": "sha512-PT43MGlnzIo+YfbsjM79Lxk9lOq6uUwZuCc8rrp0hfpLjF6Jv8jS84u2jFb+WpUeuF4K33ZDNx8CjiYrGQ2trQ==", - "license": "Apache-2.0", - "peerDependencies": { - "@tensorflow/tfjs-core": "4.22.0" - } - }, - "node_modules/@tensorflow/tfjs-core": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-4.22.0.tgz", - "integrity": "sha512-LEkOyzbknKFoWUwfkr59vSB68DMJ4cjwwHgicXN0DUi3a0Vh1Er3JQqCI1Hl86GGZQvY8ezVrtDIvqR1ZFW55A==", - "license": "Apache-2.0", - "dependencies": { - "@types/long": "^4.0.1", - "@types/offscreencanvas": "~2019.7.0", - "@types/seedrandom": "^2.4.28", - "@webgpu/types": "0.1.38", - "long": "4.0.0", - "node-fetch": "~2.6.1", - "seedrandom": "^3.0.5" - }, - "engines": { - "yarn": ">= 1.3.2" - } - }, - "node_modules/@tensorflow/tfjs-core/node_modules/@types/offscreencanvas": { - "version": "2019.7.3", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", - "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", - "license": "MIT" - }, - "node_modules/@tensorflow/tfjs-data": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-4.22.0.tgz", - "integrity": "sha512-dYmF3LihQIGvtgJrt382hSRH4S0QuAp2w1hXJI2+kOaEqo5HnUPG0k5KA6va+S1yUhx7UBToUKCBHeLHFQRV4w==", - "license": "Apache-2.0", - "dependencies": { - "@types/node-fetch": "^2.1.2", - "node-fetch": "~2.6.1", - "string_decoder": "^1.3.0" - }, - "peerDependencies": { - "@tensorflow/tfjs-core": "4.22.0", - "seedrandom": "^3.0.5" - } - }, - "node_modules/@tensorflow/tfjs-layers": { - "version": "4.22.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-4.22.0.tgz", - "integrity": "sha512-lybPj4ZNj9iIAPUj7a8ZW1hg8KQGfqWLlCZDi9eM/oNKCCAgchiyzx8OrYoWmRrB+AM6VNEeIT+2gZKg5ReihA==", - "license": "Apache-2.0 AND MIT", - "peerDependencies": { - "@tensorflow/tfjs-core": "4.22.0" - } - }, - "node_modules/@tensorflow/tfjs/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/@tybys/wasm-util": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", @@ -2057,37 +1997,16 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "license": "MIT" - }, "node_modules/@types/node": { "version": "20.19.11", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.11.tgz", "integrity": "sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==", + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~6.21.0" } }, - "node_modules/@types/node-fetch": { - "version": "2.6.13", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz", - "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.4" - } - }, - "node_modules/@types/offscreencanvas": { - "version": "2019.3.0", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz", - "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==", - "license": "MIT" - }, "node_modules/@types/react": { "version": "19.1.12", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.12.tgz", @@ -2108,12 +2027,6 @@ "@types/react": "^19.0.0" } }, - "node_modules/@types/seedrandom": { - "version": "2.4.34", - "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.34.tgz", - "integrity": "sha512-ytDiArvrn/3Xk6/vtylys5tlY6eo7Ane0hvcx++TKo6RxQXuVfW0AF/oeWqAj9dN29SyhtawuXstgmPlwNcv/A==", - "license": "MIT" - }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.41.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.41.0.tgz", @@ -2671,12 +2584,6 @@ "win32" ] }, - "node_modules/@webgpu/types": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.38.tgz", - "integrity": "sha512-7LrhVKz2PRh+DD7+S+PVaFd5HxaWQvoMqBbsV9fNJO1pjUs1P8bM2vQVNfk+3URTqbuTI7gkXi0rfsN0IadoBA==", - "license": "BSD-3-Clause" - }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", @@ -2717,19 +2624,11 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -2947,12 +2846,6 @@ "node": ">= 0.4" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -3054,6 +2947,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -3114,6 +3008,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -3154,17 +3049,6 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -3192,6 +3076,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -3204,6 +3089,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true, "license": "MIT" }, "node_modules/color-string": { @@ -3217,18 +3103,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -3236,17 +3110,6 @@ "dev": true, "license": "MIT" }, - "node_modules/core-js": { - "version": "3.29.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.29.1.tgz", - "integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -3391,15 +3254,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/detect-libc": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", @@ -3433,6 +3287,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -3565,6 +3420,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3574,6 +3430,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -3611,6 +3468,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -3623,6 +3481,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -3665,15 +3524,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -4254,26 +4104,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4310,19 +4145,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -4356,6 +4183,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -4443,6 +4271,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4482,6 +4311,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -4520,6 +4350,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -4532,6 +4363,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -4547,6 +4379,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -4785,15 +4618,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-generator-function": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", @@ -5442,12 +5266,6 @@ "dev": true, "license": "MIT" }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", - "license": "Apache-2.0" - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -5484,6 +5302,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5513,27 +5332,6 @@ "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5726,26 +5524,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/node-fetch": { - "version": "2.6.13", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz", - "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6208,12 +5986,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -6235,15 +6007,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -6340,26 +6103,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -6401,12 +6144,6 @@ "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", "license": "MIT" }, - "node_modules/seedrandom": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", - "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==", - "license": "MIT" - }, "node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -6627,12 +6364,6 @@ "node": ">=0.10.0" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -6662,35 +6393,6 @@ "node": ">=10.0.0" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", @@ -6804,18 +6506,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -6866,6 +6556,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -6997,12 +6688,6 @@ "node": ">=8.0" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, "node_modules/ts-api-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", @@ -7173,6 +6858,7 @@ "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, "license": "MIT" }, "node_modules/unrs-resolver": { @@ -7276,22 +6962,6 @@ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7407,32 +7077,6 @@ "node": ">=0.10.0" } }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/yallist": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", @@ -7443,33 +7087,6 @@ "node": ">=18" } }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index fa0ef8f..36a94f7 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,6 @@ "@radix-ui/react-slider": "^1.3.6", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-switch": "^1.2.6", - "@tensorflow/tfjs": "^4.22.0", - "@tensorflow/tfjs-backend-webgl": "^4.22.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "embla-carousel-react": "^8.6.0", diff --git a/public/models/group1-shard1of1.bin b/public/models/group1-shard1of1.bin deleted file mode 100644 index 1fb2751..0000000 Binary files a/public/models/group1-shard1of1.bin and /dev/null differ diff --git a/public/models/model.json b/public/models/model.json deleted file mode 100644 index 5bf4ffc..0000000 --- a/public/models/model.json +++ /dev/null @@ -1 +0,0 @@ -{"format": "graph-model", "generatedBy": "1.15.0", "convertedBy": "TensorFlow.js Converter v1.6.0", "userDefinedMetadata": {"signature": {"inputs": {"image_tensor:0": {"name": "image_tensor:0", "dtype": "DT_UINT8", "tensorShape": {"dim": [{"size": "-1"}, {"size": "-1"}, {"size": "-1"}, {"size": "3"}]}}}, "outputs": {"raw_detection_boxes:0": {"name": "raw_detection_boxes:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "-1"}, {"size": "4"}]}}, "detection_multiclass_scores:0": {"name": "detection_multiclass_scores:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "100"}, {"size": "2"}]}}, "num_detections:0": {"name": "num_detections:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}]}}, "raw_detection_scores:0": {"name": "raw_detection_scores:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "-1"}, {"size": "2"}]}}, "detection_boxes:0": {"name": "detection_boxes:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "100"}, {"size": "4"}]}}, "detection_scores:0": {"name": "detection_scores:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "100"}]}}, "detection_classes:0": {"name": "detection_classes:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "100"}]}}}}}, "modelTopology": {"node": [{"name": "Postprocessor/Slice/begin", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}}}, {"name": "Postprocessor/Slice/size", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "ConstantFolding/Postprocessor/truediv_recip", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "ConstantFolding/Postprocessor/Decode/truediv_recip", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "ConstantFolding/Postprocessor/Decode/truediv_2_recip", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "ConstantFolding/Postprocessor/Decode/truediv_4_recip", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/ExpandDims", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1917"}, {"size": "4"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Reshape_1/shape", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/Decode/transpose/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_0/BoxEncodingPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "576"}, {"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_0/BoxEncodingPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_1/BoxEncodingPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "1280"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_1/BoxEncodingPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_2/BoxEncodingPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_2/BoxEncodingPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/BoxEncodingPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/BoxEncodingPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_4/BoxEncodingPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_4/BoxEncodingPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/BoxEncodingPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "128"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/BoxEncodingPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/strided_slice_1/stack_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_0/Reshape/shape/3", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_0/ClassPredictor/weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "576"}, {"size": "6"}]}}}}}, {"name": "BoxPredictor_0/ClassPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "6"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_1/ClassPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "1280"}, {"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_1/ClassPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_2/ClassPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_2/ClassPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/ClassPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/ClassPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_4/ClassPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_4/ClassPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/ClassPredictor/weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "128"}, {"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/ClassPredictor/biases", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "image_tensor", "op": "Placeholder", "attr": {"shape": {"shape": {"dim": [{"size": "-1"}, {"size": "-1"}, {"size": "-1"}, {"size": "3"}]}}, "dtype": {"type": "DT_UINT8"}}}, {"name": "Preprocessor/mul/x", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "add/y", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_0/Reshape/shape/1", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}}}, {"name": "Postprocessor/ExpandDims_1/dim", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "FeatureExtractor/MobilenetV2/Conv/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "3"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/Conv/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "16"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "16"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "96"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/project/Conv2D_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "144"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "144"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "144"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "144"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/project/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "144"}, {"size": "24"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/expand/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "24"}, {"size": "144"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "144"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "144"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "144"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "144"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "192"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "192"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "192"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/project/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "192"}, {"size": "32"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "32"}, {"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "192"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "192"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "192"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/project/Conv2D_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "384"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "384"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/expand/Conv2D_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "384"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "384"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "384"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/expand/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "384"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "384"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "384"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "384"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "384"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "384"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/project/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "384"}, {"size": "96"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/expand/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "576"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "576"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "576"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "576"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "576"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "576"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "576"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "576"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "576"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "576"}, {"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "96"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "96"}, {"size": "576"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Conv2D_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "576"}]}}}}}, {"name": "BoxPredictor_0/BoxEncodingPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "576"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_0/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "576"}]}}}}}, {"name": "BoxPredictor_0/ClassPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "576"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_0/ClassPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "576"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "576"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "576"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/project/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "576"}, {"size": "160"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "160"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "160"}, {"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "960"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "960"}, {"size": "160"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "160"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "160"}, {"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "960"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "960"}, {"size": "160"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "160"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/expand/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "160"}, {"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/expand/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "960"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "960"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/project/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "960"}, {"size": "320"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/project/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "320"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/Conv_1/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "320"}, {"size": "1280"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/Conv_1/Conv2D_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1280"}]}}}}}, {"name": "BoxPredictor_1/BoxEncodingPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "1280"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_1/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1280"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_1/ClassPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "1280"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_1/ClassPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1280"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "1280"}, {"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_2/BoxEncodingPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}}}, {"name": "BoxPredictor_2/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_2/ClassPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "512"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_2/ClassPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "512"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "512"}, {"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/depthwise_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "128"}, {"size": "1"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "128"}, {"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/BoxEncodingPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/ClassPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}}}, {"name": "BoxPredictor_3/ClassPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/depthwise_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "128"}, {"size": "1"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "128"}, {"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Conv2D_bn_offset", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}}}, {"name": "BoxPredictor_4/BoxEncodingPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_4/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_4/ClassPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "256"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_4/ClassPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Conv2D_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "256"}, {"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "64"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Conv2D_weights", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "1"}, {"size": "64"}, {"size": "128"}]}}}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Conv2D_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/BoxEncodingPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "128"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/ClassPredictor_depthwise/depthwise_weights", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "128"}, {"size": "1"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/ClassPredictor_depthwise/depthwise_bn_offset", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "128"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_1", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start"], "attr": {"T": {"type": "DT_INT32"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start"], "attr": {"T": {"type": "DT_INT32"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Preprocessor/map/while/Enter_1", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start"], "attr": {"frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}, "T": {"type": "DT_INT32"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}}}, {"name": "Preprocessor/map/while/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start"], "attr": {"T": {"type": "DT_INT32"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}}}, {"name": "Cast", "op": "Cast", "input": ["image_tensor"], "attr": {"SrcT": {"type": "DT_UINT8"}, "Truncate": {"b": false}, "DstT": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_1", "op": "Merge", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_1"], "attr": {"T": {"type": "DT_INT32"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge", "op": "Merge", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration"], "attr": {"T": {"type": "DT_INT32"}, "N": {"i": "2"}}}, {"name": "Preprocessor/map/while/Merge_1", "op": "Merge", "input": ["Preprocessor/map/while/Enter_1", "Preprocessor/map/while/NextIteration_1"], "attr": {"T": {"type": "DT_INT32"}, "N": {"i": "2"}}}, {"name": "Preprocessor/map/while/Merge", "op": "Merge", "input": ["Preprocessor/map/while/Enter", "Preprocessor/map/while/NextIteration"], "attr": {"T": {"type": "DT_INT32"}, "N": {"i": "2"}}}, {"name": "Preprocessor/map/TensorArrayUnstack/Shape", "op": "Shape", "input": ["Cast"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/TensorArrayUnstack/strided_slice", "op": "StridedSlice", "input": ["Preprocessor/map/TensorArrayUnstack/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/TensorArray_2", "op": "TensorArrayV3", "input": ["Preprocessor/map/TensorArrayUnstack/strided_slice"], "attr": {"tensor_array_name": {"s": ""}, "dtype": {"type": "DT_INT32"}, "element_shape": {"shape": {"unknownRank": true}}, "clear_after_read": {"b": true}, "dynamic_size": {"b": false}, "identical_element_shapes": {"b": true}}}, {"name": "Preprocessor/map/TensorArray_1", "op": "TensorArrayV3", "input": ["Preprocessor/map/TensorArrayUnstack/strided_slice"], "attr": {"element_shape": {"shape": {"unknownRank": true}}, "clear_after_read": {"b": true}, "dynamic_size": {"b": false}, "identical_element_shapes": {"b": true}, "tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/TensorArray", "op": "TensorArrayV3", "input": ["Preprocessor/map/TensorArrayUnstack/strided_slice"], "attr": {"tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"unknownRank": true}}, "dynamic_size": {"b": false}, "clear_after_read": {"b": true}, "identical_element_shapes": {"b": true}}}, {"name": "Preprocessor/map/while/Less/Enter", "op": "Enter", "input": ["Preprocessor/map/TensorArrayUnstack/strided_slice"], "attr": {"frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}, "T": {"type": "DT_INT32"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}}}, {"name": "Preprocessor/map/TensorArrayUnstack/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Preprocessor/map/TensorArrayUnstack/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/TensorArrayWrite_1/TensorArrayWriteV3/Enter", "op": "Enter", "input": ["Preprocessor/map/TensorArray_2"], "attr": {"parallel_iterations": {"i": "32"}, "frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}, "T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}}}, {"name": "Preprocessor/map/while/Enter_3", "op": "Enter", "input": ["Preprocessor/map/TensorArray_2:1"], "attr": {"T": {"type": "DT_FLOAT"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}}}, {"name": "Preprocessor/map/while/TensorArrayWrite/TensorArrayWriteV3/Enter", "op": "Enter", "input": ["Preprocessor/map/TensorArray_1"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}}}, {"name": "Preprocessor/map/while/Enter_2", "op": "Enter", "input": ["Preprocessor/map/TensorArray_1:1"], "attr": {"T": {"type": "DT_FLOAT"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}}}, {"name": "Preprocessor/map/while/TensorArrayReadV3/Enter", "op": "Enter", "input": ["Preprocessor/map/TensorArray"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}}}, {"name": "Preprocessor/map/while/Less", "op": "Less", "input": ["Preprocessor/map/while/Merge", "Preprocessor/map/while/Less/Enter"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/Less_1", "op": "Less", "input": ["Preprocessor/map/while/Merge_1", "Preprocessor/map/while/Less/Enter"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3", "op": "TensorArrayScatterV3", "input": ["Preprocessor/map/TensorArray", "Preprocessor/map/TensorArrayUnstack/range", "Cast", "Preprocessor/map/TensorArray:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/Merge_3", "op": "Merge", "input": ["Preprocessor/map/while/Enter_3", "Preprocessor/map/while/NextIteration_3"], "attr": {"N": {"i": "2"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/Merge_2", "op": "Merge", "input": ["Preprocessor/map/while/Enter_2", "Preprocessor/map/while/NextIteration_2"], "attr": {"T": {"type": "DT_FLOAT"}, "N": {"i": "2"}}}, {"name": "Preprocessor/map/while/LogicalAnd", "op": "LogicalAnd", "input": ["Preprocessor/map/while/Less", "Preprocessor/map/while/Less_1"]}, {"name": "Preprocessor/map/while/TensorArrayReadV3/Enter_1", "op": "Enter", "input": ["Preprocessor/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3"], "attr": {"T": {"type": "DT_FLOAT"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UHJlcHJvY2Vzc29yL21hcC93aGlsZS93aGlsZV9jb250ZXh0"}}}, {"name": "Preprocessor/map/while/LoopCond", "op": "LoopCond", "input": ["Preprocessor/map/while/LogicalAnd"]}, {"name": "Preprocessor/map/while/Switch_3", "op": "Switch", "input": ["Preprocessor/map/while/Merge_3", "Preprocessor/map/while/LoopCond"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/Switch_1", "op": "Switch", "input": ["Preprocessor/map/while/Merge_1", "Preprocessor/map/while/LoopCond"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/Switch", "op": "Switch", "input": ["Preprocessor/map/while/Merge", "Preprocessor/map/while/LoopCond"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/Switch_2", "op": "Switch", "input": ["Preprocessor/map/while/Merge_2", "Preprocessor/map/while/LoopCond"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/Exit_3", "op": "Exit", "input": ["Preprocessor/map/while/Switch_3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/TensorArrayReadV3", "op": "TensorArrayReadV3", "input": ["Preprocessor/map/while/TensorArrayReadV3/Enter", "Preprocessor/map/while/Switch_1:1", "Preprocessor/map/while/TensorArrayReadV3/Enter_1"], "attr": {"dtype": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/Identity", "op": "Identity", "input": ["Preprocessor/map/while/Switch:1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/Exit_2", "op": "Exit", "input": ["Preprocessor/map/while/Switch_2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/TensorArrayStack_1/TensorArraySizeV3", "op": "TensorArraySizeV3", "input": ["Preprocessor/map/TensorArray_2", "Preprocessor/map/while/Exit_3"]}, {"name": "Preprocessor/map/while/ResizeImage/stack_1", "op": "Const", "input": ["^Preprocessor/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/ResizeImage/resize/ExpandDims/dim", "op": "Const", "input": ["^Preprocessor/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/ResizeImage/stack", "op": "Const", "input": ["^Preprocessor/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/add/y", "op": "Const", "input": ["^Preprocessor/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/TensorArrayStack/TensorArraySizeV3", "op": "TensorArraySizeV3", "input": ["Preprocessor/map/TensorArray_1", "Preprocessor/map/while/Exit_2"]}, {"name": "Preprocessor/map/TensorArrayStack_1/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Preprocessor/map/TensorArrayStack_1/TensorArraySizeV3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/TensorArrayWrite_1/TensorArrayWriteV3", "op": "TensorArrayWriteV3", "input": ["Preprocessor/map/while/TensorArrayWrite_1/TensorArrayWriteV3/Enter", "Preprocessor/map/while/Switch_1:1", "Preprocessor/map/while/ResizeImage/stack_1", "Preprocessor/map/while/Switch_3:1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/ResizeImage/resize/ExpandDims", "op": "ExpandDims", "input": ["Preprocessor/map/while/TensorArrayReadV3", "Preprocessor/map/while/ResizeImage/resize/ExpandDims/dim"], "attr": {"Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/add", "op": "AddV2", "input": ["Preprocessor/map/while/Identity", "Preprocessor/map/while/add/y"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/add_1", "op": "AddV2", "input": ["Preprocessor/map/while/Switch_1:1", "Preprocessor/map/while/add/y"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/TensorArrayStack/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Preprocessor/map/TensorArrayStack/TensorArraySizeV3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/TensorArrayStack_1/TensorArrayGatherV3", "op": "TensorArrayGatherV3", "input": ["Preprocessor/map/TensorArray_2", "Preprocessor/map/TensorArrayStack_1/range", "Preprocessor/map/while/Exit_3"], "attr": {"dtype": {"type": "DT_INT32"}, "element_shape": {"shape": {"dim": [{"size": "3"}]}}}}, {"name": "Preprocessor/map/while/NextIteration_3", "op": "NextIteration", "input": ["Preprocessor/map/while/TensorArrayWrite_1/TensorArrayWriteV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/ResizeImage/resize/ResizeBilinear", "op": "ResizeBilinear", "input": ["Preprocessor/map/while/ResizeImage/resize/ExpandDims", "Preprocessor/map/while/ResizeImage/stack"], "attr": {"align_corners": {"b": false}, "half_pixel_centers": {"b": false}, "T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/NextIteration", "op": "NextIteration", "input": ["Preprocessor/map/while/add"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/while/NextIteration_1", "op": "NextIteration", "input": ["Preprocessor/map/while/add_1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Preprocessor/map/TensorArrayStack/TensorArrayGatherV3", "op": "TensorArrayGatherV3", "input": ["Preprocessor/map/TensorArray_1", "Preprocessor/map/TensorArrayStack/range", "Preprocessor/map/while/Exit_2"], "attr": {"element_shape": {"shape": {"dim": [{"size": "300"}, {"size": "300"}, {"size": "3"}]}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Cast_1", "op": "Cast", "input": ["Preprocessor/map/TensorArrayStack_1/TensorArrayGatherV3"], "attr": {"SrcT": {"type": "DT_INT32"}, "Truncate": {"b": false}, "DstT": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/ResizeImage/resize/Squeeze", "op": "Squeeze", "input": ["Preprocessor/map/while/ResizeImage/resize/ResizeBilinear"], "attr": {"squeeze_dims": {"list": {"i": ["0"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/mul", "op": "Mul", "input": ["Preprocessor/map/TensorArrayStack/TensorArrayGatherV3", "Preprocessor/mul/x"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/unstack", "op": "Unpack", "input": ["Postprocessor/Cast_1"], "attr": {"num": {"i": "3"}, "T": {"type": "DT_FLOAT"}, "axis": {"i": "1"}}}, {"name": "Preprocessor/map/while/TensorArrayWrite/TensorArrayWriteV3", "op": "TensorArrayWriteV3", "input": ["Preprocessor/map/while/TensorArrayWrite/TensorArrayWriteV3/Enter", "Preprocessor/map/while/Switch_1:1", "Preprocessor/map/while/ResizeImage/resize/Squeeze", "Preprocessor/map/while/Switch_2:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/sub", "op": "Sub", "input": ["Preprocessor/mul", "add/y"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/zeros_like", "op": "ZerosLike", "input": ["Postprocessor/unstack"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/truediv", "op": "Mul", "input": ["ConstantFolding/Postprocessor/truediv_recip", "Postprocessor/unstack"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/zeros_like_1", "op": "ZerosLike", "input": ["Postprocessor/unstack:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/truediv_1", "op": "Mul", "input": ["ConstantFolding/Postprocessor/truediv_recip", "Postprocessor/unstack:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Preprocessor/map/while/NextIteration_2", "op": "NextIteration", "input": ["Preprocessor/map/while/TensorArrayWrite/TensorArrayWriteV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/Conv/Relu6", "op": "_FusedConv2D", "input": ["Preprocessor/sub", "FeatureExtractor/MobilenetV2/Conv/Conv2D_weights", "FeatureExtractor/MobilenetV2/Conv/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/stack_1", "op": "Pack", "input": ["Postprocessor/zeros_like", "Postprocessor/zeros_like_1", "Postprocessor/truediv", "Postprocessor/truediv_1"], "attr": {"N": {"i": "4"}, "T": {"type": "DT_FLOAT"}, "axis": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/Conv/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv/depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_3/Shape", "op": "Shape", "input": ["Postprocessor/stack_1"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_3/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_3/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_3/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_3/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_1/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_1/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_1/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_1/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_1/depthwise/depthwise_bn_offset"], "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "num_args": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_1/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_1/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_1/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_1/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_2/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_2/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_2/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_2/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_2/depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_2/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_2/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_2/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_1/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_2/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_2/add", "FeatureExtractor/MobilenetV2/expanded_conv_3/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_3/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_3/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_3/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_3/depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_3/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_3/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_3/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_3/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_4/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_4/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_4/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_4/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_4/depthwise/depthwise_bn_offset"], "attr": {"T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_4/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_4/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_4/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_3/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_4/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_4/add", "FeatureExtractor/MobilenetV2/expanded_conv_5/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_5/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_5/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_5/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_5/depthwise/depthwise_bn_offset"], "attr": {"num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_5/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_5/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_5/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_4/add", "FeatureExtractor/MobilenetV2/expanded_conv_5/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_5/add", "FeatureExtractor/MobilenetV2/expanded_conv_6/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_6/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_6/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_6/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_6/depthwise/depthwise_bn_offset"], "attr": {"strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_6/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_6/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_6/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_6/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_7/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_7/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_7/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_7/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_7/depthwise/depthwise_bn_offset"], "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_7/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_7/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_7/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_6/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_7/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_7/add", "FeatureExtractor/MobilenetV2/expanded_conv_8/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_8/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_8/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_8/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_8/depthwise/depthwise_bn_offset"], "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_8/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_8/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_8/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_7/add", "FeatureExtractor/MobilenetV2/expanded_conv_8/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_8/add", "FeatureExtractor/MobilenetV2/expanded_conv_9/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_9/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_9/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_9/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_9/depthwise/depthwise_bn_offset"], "attr": {"T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_9/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_9/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_9/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_8/add", "FeatureExtractor/MobilenetV2/expanded_conv_9/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_9/add", "FeatureExtractor/MobilenetV2/expanded_conv_10/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_10/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_10/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_10/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_10/depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_10/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_10/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_10/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_10/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_11/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_11/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_11/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_11/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_11/depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_11/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_11/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_11/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_10/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_11/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_11/add", "FeatureExtractor/MobilenetV2/expanded_conv_12/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_12/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_12/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_12/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_12/depthwise/depthwise_bn_offset"], "attr": {"num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_12/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_12/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_12/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_11/add", "FeatureExtractor/MobilenetV2/expanded_conv_12/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_12/add", "FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}}}, {"name": "BoxPredictor_0/Shape", "op": "Shape", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Relu6"], "attr": {"out_type": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_0/BoxEncodingPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Relu6", "BoxPredictor_0/BoxEncodingPredictor_depthwise/depthwise_weights", "BoxPredictor_0/BoxEncodingPredictor_depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_0/ClassPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Relu6", "BoxPredictor_0/ClassPredictor_depthwise/depthwise_weights", "BoxPredictor_0/ClassPredictor_depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_13/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_13/depthwise/depthwise_bn_offset"], "attr": {"strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_0/strided_slice", "op": "StridedSlice", "input": ["BoxPredictor_0/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_0/Reshape/shape", "op": "Pack", "input": ["BoxPredictor_0/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "BoxPredictor_0/Reshape/shape/3"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "4"}}}, {"name": "BoxPredictor_0/Reshape_1/shape", "op": "Pack", "input": ["BoxPredictor_0/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/ExpandDims_1/dim"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "3"}}}, {"name": "BoxPredictor_0/BoxEncodingPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_0/BoxEncodingPredictor_depthwise/depthwise", "BoxPredictor_0/BoxEncodingPredictor/weights", "BoxPredictor_0/BoxEncodingPredictor/biases"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "BoxPredictor_0/ClassPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_0/ClassPredictor_depthwise/depthwise", "BoxPredictor_0/ClassPredictor/weights", "BoxPredictor_0/ClassPredictor/biases"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_13/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_13/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_13/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "BoxPredictor_0/Reshape", "op": "Reshape", "input": ["BoxPredictor_0/BoxEncodingPredictor/BiasAdd", "BoxPredictor_0/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_0/Reshape_1", "op": "Reshape", "input": ["BoxPredictor_0/ClassPredictor/BiasAdd", "BoxPredictor_0/Reshape_1/shape"], "attr": {"Tshape": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_13/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_14/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_14/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_14/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_14/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_14/depthwise/depthwise_bn_offset"], "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_14/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_14/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_14/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_13/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/expanded_conv_14/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_14/add", "FeatureExtractor/MobilenetV2/expanded_conv_15/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_15/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_15/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_15/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_15/depthwise/depthwise_bn_offset"], "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_15/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_15/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_15/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/add", "op": "AddV2", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_14/add", "FeatureExtractor/MobilenetV2/expanded_conv_15/project/BatchNorm/FusedBatchNormV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/expand/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_15/add", "FeatureExtractor/MobilenetV2/expanded_conv_16/expand/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_16/expand/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_16/expand/Relu6", "FeatureExtractor/MobilenetV2/expanded_conv_16/depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/expanded_conv_16/depthwise/depthwise_bn_offset"], "attr": {"T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/project/BatchNorm/FusedBatchNormV3", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_16/depthwise/depthwise", "FeatureExtractor/MobilenetV2/expanded_conv_16/project/Conv2D_weights", "FeatureExtractor/MobilenetV2/expanded_conv_16/project/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/Conv_1/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/expanded_conv_16/project/BatchNorm/FusedBatchNormV3", "FeatureExtractor/MobilenetV2/Conv_1/Conv2D_weights", "FeatureExtractor/MobilenetV2/Conv_1/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "BoxPredictor_1/Shape", "op": "Shape", "input": ["FeatureExtractor/MobilenetV2/Conv_1/Relu6"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_1/BoxEncodingPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/Conv_1/Relu6", "BoxPredictor_1/BoxEncodingPredictor_depthwise/depthwise_weights", "BoxPredictor_1/BoxEncodingPredictor_depthwise/depthwise_bn_offset"], "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}}}, {"name": "BoxPredictor_1/ClassPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/Conv_1/Relu6", "BoxPredictor_1/ClassPredictor_depthwise/depthwise_weights", "BoxPredictor_1/ClassPredictor_depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/Conv_1/Relu6", "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Conv2D_weights", "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_1/strided_slice", "op": "StridedSlice", "input": ["BoxPredictor_1/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Relu6", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/depthwise_bn_offset"], "attr": {"num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "BoxPredictor_1/Reshape/shape", "op": "Pack", "input": ["BoxPredictor_1/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "BoxPredictor_0/Reshape/shape/3"], "attr": {"axis": {"i": "0"}, "N": {"i": "4"}, "T": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_1/Reshape_1/shape", "op": "Pack", "input": ["BoxPredictor_1/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/ExpandDims_1/dim"], "attr": {"N": {"i": "3"}, "T": {"type": "DT_INT32"}, "axis": {"i": "0"}}}, {"name": "BoxPredictor_1/BoxEncodingPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_1/BoxEncodingPredictor_depthwise/depthwise", "BoxPredictor_1/BoxEncodingPredictor/weights", "BoxPredictor_1/BoxEncodingPredictor/biases"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}}}, {"name": "BoxPredictor_1/ClassPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_1/ClassPredictor_depthwise/depthwise", "BoxPredictor_1/ClassPredictor/weights", "BoxPredictor_1/ClassPredictor/biases"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "BoxPredictor_1/Reshape", "op": "Reshape", "input": ["BoxPredictor_1/BoxEncodingPredictor/BiasAdd", "BoxPredictor_1/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_1/Reshape_1", "op": "Reshape", "input": ["BoxPredictor_1/ClassPredictor/BiasAdd", "BoxPredictor_1/Reshape_1/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/depthwise", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Conv2D_weights", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_2/Shape", "op": "Shape", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Relu6"], "attr": {"out_type": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_2/BoxEncodingPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Relu6", "BoxPredictor_2/BoxEncodingPredictor_depthwise/depthwise_weights", "BoxPredictor_2/BoxEncodingPredictor_depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_2/ClassPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Relu6", "BoxPredictor_2/ClassPredictor_depthwise/depthwise_weights", "BoxPredictor_2/ClassPredictor_depthwise/depthwise_bn_offset"], "attr": {"num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Relu6", "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Conv2D_weights", "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_2/strided_slice", "op": "StridedSlice", "input": ["BoxPredictor_2/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Relu6", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/depthwise_bn_offset"], "attr": {"padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}}}, {"name": "BoxPredictor_2/Reshape/shape", "op": "Pack", "input": ["BoxPredictor_2/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "BoxPredictor_0/Reshape/shape/3"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "4"}}}, {"name": "BoxPredictor_2/Reshape_1/shape", "op": "Pack", "input": ["BoxPredictor_2/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/ExpandDims_1/dim"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "3"}}}, {"name": "BoxPredictor_2/BoxEncodingPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_2/BoxEncodingPredictor_depthwise/depthwise", "BoxPredictor_2/BoxEncodingPredictor/weights", "BoxPredictor_2/BoxEncodingPredictor/biases"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "BoxPredictor_2/ClassPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_2/ClassPredictor_depthwise/depthwise", "BoxPredictor_2/ClassPredictor/weights", "BoxPredictor_2/ClassPredictor/biases"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}}}, {"name": "BoxPredictor_2/Reshape", "op": "Reshape", "input": ["BoxPredictor_2/BoxEncodingPredictor/BiasAdd", "BoxPredictor_2/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_2/Reshape_1", "op": "Reshape", "input": ["BoxPredictor_2/ClassPredictor/BiasAdd", "BoxPredictor_2/Reshape_1/shape"], "attr": {"Tshape": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/depthwise", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Conv2D_weights", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_3/Shape", "op": "Shape", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Relu6"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_3/BoxEncodingPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Relu6", "BoxPredictor_3/BoxEncodingPredictor_depthwise/depthwise_weights", "BoxPredictor_3/BoxEncodingPredictor_depthwise/depthwise_bn_offset"], "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/ClassPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Relu6", "BoxPredictor_3/ClassPredictor_depthwise/depthwise_weights", "BoxPredictor_3/ClassPredictor_depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Relu6", "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Conv2D_weights", "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_3/strided_slice", "op": "StridedSlice", "input": ["BoxPredictor_3/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Relu6", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/depthwise_bn_offset"], "attr": {"num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "BoxPredictor_3/Reshape/shape", "op": "Pack", "input": ["BoxPredictor_3/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "BoxPredictor_0/Reshape/shape/3"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "4"}}}, {"name": "BoxPredictor_3/Reshape_1/shape", "op": "Pack", "input": ["BoxPredictor_3/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/ExpandDims_1/dim"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "3"}}}, {"name": "BoxPredictor_3/BoxEncodingPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_3/BoxEncodingPredictor_depthwise/depthwise", "BoxPredictor_3/BoxEncodingPredictor/weights", "BoxPredictor_3/BoxEncodingPredictor/biases"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "BoxPredictor_3/ClassPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_3/ClassPredictor_depthwise/depthwise", "BoxPredictor_3/ClassPredictor/weights", "BoxPredictor_3/ClassPredictor/biases"], "device": "/device:CPU:0", "attr": {"use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "BoxPredictor_3/Reshape", "op": "Reshape", "input": ["BoxPredictor_3/BoxEncodingPredictor/BiasAdd", "BoxPredictor_3/Reshape/shape"], "attr": {"Tshape": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_3/Reshape_1", "op": "Reshape", "input": ["BoxPredictor_3/ClassPredictor/BiasAdd", "BoxPredictor_3/Reshape_1/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/depthwise", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Conv2D_weights", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_4/Shape", "op": "Shape", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Relu6"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_4/BoxEncodingPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Relu6", "BoxPredictor_4/BoxEncodingPredictor_depthwise/depthwise_weights", "BoxPredictor_4/BoxEncodingPredictor_depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_4/ClassPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Relu6", "BoxPredictor_4/ClassPredictor_depthwise/depthwise_weights", "BoxPredictor_4/ClassPredictor_depthwise/depthwise_bn_offset"], "attr": {"num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Relu6", "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Conv2D_weights", "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "BoxPredictor_4/strided_slice", "op": "StridedSlice", "input": ["BoxPredictor_4/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Relu6", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/depthwise_weights", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/depthwise_bn_offset"], "attr": {"T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "BoxPredictor_4/Reshape/shape", "op": "Pack", "input": ["BoxPredictor_4/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "BoxPredictor_0/Reshape/shape/3"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "4"}}}, {"name": "BoxPredictor_4/Reshape_1/shape", "op": "Pack", "input": ["BoxPredictor_4/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/ExpandDims_1/dim"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "3"}}}, {"name": "BoxPredictor_4/BoxEncodingPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_4/BoxEncodingPredictor_depthwise/depthwise", "BoxPredictor_4/BoxEncodingPredictor/weights", "BoxPredictor_4/BoxEncodingPredictor/biases"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "BoxPredictor_4/ClassPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_4/ClassPredictor_depthwise/depthwise", "BoxPredictor_4/ClassPredictor/weights", "BoxPredictor_4/ClassPredictor/biases"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "BoxPredictor_4/Reshape", "op": "Reshape", "input": ["BoxPredictor_4/BoxEncodingPredictor/BiasAdd", "BoxPredictor_4/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_4/Reshape_1", "op": "Reshape", "input": ["BoxPredictor_4/ClassPredictor/BiasAdd", "BoxPredictor_4/Reshape_1/shape"], "attr": {"Tshape": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Relu6", "op": "_FusedConv2D", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/depthwise", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Conv2D_weights", "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Conv2D_bn_offset"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "BoxPredictor_5/Shape", "op": "Shape", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Relu6"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_5/BoxEncodingPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Relu6", "BoxPredictor_5/BoxEncodingPredictor_depthwise/depthwise_weights", "BoxPredictor_5/BoxEncodingPredictor_depthwise/depthwise_bn_offset"], "attr": {"fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}}}, {"name": "BoxPredictor_5/ClassPredictor_depthwise/depthwise", "op": "FusedDepthwiseConv2dNative", "input": ["FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Relu6", "BoxPredictor_5/ClassPredictor_depthwise/depthwise_weights", "BoxPredictor_5/ClassPredictor_depthwise/depthwise_bn_offset"], "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "num_args": {"i": "1"}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdTY="]}}}}, {"name": "BoxPredictor_5/strided_slice", "op": "StridedSlice", "input": ["BoxPredictor_5/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_5/Reshape/shape", "op": "Pack", "input": ["BoxPredictor_5/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "BoxPredictor_0/Reshape/shape/3"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "4"}}}, {"name": "BoxPredictor_5/Reshape_1/shape", "op": "Pack", "input": ["BoxPredictor_5/strided_slice", "BoxPredictor_0/Reshape/shape/1", "Postprocessor/ExpandDims_1/dim"], "attr": {"N": {"i": "3"}, "T": {"type": "DT_INT32"}, "axis": {"i": "0"}}}, {"name": "BoxPredictor_5/BoxEncodingPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_5/BoxEncodingPredictor_depthwise/depthwise", "BoxPredictor_5/BoxEncodingPredictor/weights", "BoxPredictor_5/BoxEncodingPredictor/biases"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}, "epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}}}, {"name": "BoxPredictor_5/ClassPredictor/BiasAdd", "op": "_FusedConv2D", "input": ["BoxPredictor_5/ClassPredictor_depthwise/depthwise", "BoxPredictor_5/ClassPredictor/weights", "BoxPredictor_5/ClassPredictor/biases"], "device": "/device:CPU:0", "attr": {"epsilon": {"f": 0.0}, "padding": {"s": "U0FNRQ=="}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "num_args": {"i": "1"}}}, {"name": "BoxPredictor_5/Reshape", "op": "Reshape", "input": ["BoxPredictor_5/BoxEncodingPredictor/BiasAdd", "BoxPredictor_5/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "BoxPredictor_5/Reshape_1", "op": "Reshape", "input": ["BoxPredictor_5/ClassPredictor/BiasAdd", "BoxPredictor_5/Reshape_1/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "concat", "op": "ConcatV2", "input": ["BoxPredictor_0/Reshape", "BoxPredictor_1/Reshape", "BoxPredictor_2/Reshape", "BoxPredictor_3/Reshape", "BoxPredictor_4/Reshape", "BoxPredictor_5/Reshape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"T": {"type": "DT_FLOAT"}, "N": {"i": "6"}, "Tidx": {"type": "DT_INT32"}}}, {"name": "concat_1", "op": "ConcatV2", "input": ["BoxPredictor_0/Reshape_1", "BoxPredictor_1/Reshape_1", "BoxPredictor_2/Reshape_1", "BoxPredictor_3/Reshape_1", "BoxPredictor_4/Reshape_1", "BoxPredictor_5/Reshape_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}, "N": {"i": "6"}}}, {"name": "Squeeze", "op": "Squeeze", "input": ["concat"], "attr": {"squeeze_dims": {"list": {"i": ["2"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/convert_scores", "op": "Sigmoid", "input": ["concat_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Reshape_1", "op": "Reshape", "input": ["Squeeze", "Postprocessor/Reshape_1/shape"], "attr": {"Tshape": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Shape", "op": "Shape", "input": ["Squeeze"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "raw_detection_scores", "op": "Identity", "input": ["Postprocessor/convert_scores"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/Shape", "op": "Shape", "input": ["Postprocessor/convert_scores"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/Slice", "op": "Slice", "input": ["Postprocessor/convert_scores", "Postprocessor/Slice/begin", "Postprocessor/Slice/size"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/transpose", "op": "Transpose", "input": ["Postprocessor/Reshape_1", "Postprocessor/Decode/transpose/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "Postprocessor/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}}}, {"name": "Postprocessor/strided_slice_1", "op": "StridedSlice", "input": ["Postprocessor/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/strided_slice_1/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_1/Shape", "op": "Shape", "input": ["Postprocessor/Slice"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/Decode/unstack", "op": "Unpack", "input": ["Postprocessor/Decode/transpose"], "attr": {"num": {"i": "4"}, "T": {"type": "DT_FLOAT"}, "axis": {"i": "0"}}}, {"name": "Postprocessor/Tile/multiples", "op": "Pack", "input": ["Postprocessor/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "3"}}}, {"name": "Postprocessor/stack", "op": "Pack", "input": ["Postprocessor/strided_slice", "Postprocessor/strided_slice_1", "BoxPredictor_0/Reshape/shape/3"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "3"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_1/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_1/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}}}, {"name": "Postprocessor/Decode/truediv", "op": "Mul", "input": ["ConstantFolding/Postprocessor/Decode/truediv_recip", "Postprocessor/Decode/unstack"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/truediv_1", "op": "Mul", "input": ["ConstantFolding/Postprocessor/Decode/truediv_recip", "Postprocessor/Decode/unstack:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/truediv_2", "op": "Mul", "input": ["ConstantFolding/Postprocessor/Decode/truediv_2_recip", "Postprocessor/Decode/unstack:2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/truediv_3", "op": "Mul", "input": ["ConstantFolding/Postprocessor/Decode/truediv_2_recip", "Postprocessor/Decode/unstack:3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Tile", "op": "Tile", "input": ["Postprocessor/ExpandDims", "Postprocessor/Tile/multiples"], "attr": {"Tmultiples": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_1/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_1/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/Decode/Exp_1", "op": "Exp", "input": ["Postprocessor/Decode/truediv_2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/Exp", "op": "Exp", "input": ["Postprocessor/Decode/truediv_3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Reshape", "op": "Reshape", "input": ["Postprocessor/Tile", "Postprocessor/Reshape_1/shape"], "attr": {"Tshape": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/get_center_coordinates_and_sizes/transpose", "op": "Transpose", "input": ["Postprocessor/Reshape", "Postprocessor/Decode/transpose/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "Postprocessor/Decode/get_center_coordinates_and_sizes/unstack", "op": "Unpack", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/transpose"], "attr": {"num": {"i": "4"}, "T": {"type": "DT_FLOAT"}, "axis": {"i": "0"}}}, {"name": "Postprocessor/Decode/get_center_coordinates_and_sizes/sub_1", "op": "Sub", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/unstack:2", "Postprocessor/Decode/get_center_coordinates_and_sizes/unstack"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/get_center_coordinates_and_sizes/sub", "op": "Sub", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/unstack:3", "Postprocessor/Decode/get_center_coordinates_and_sizes/unstack:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/mul_2", "op": "Mul", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/sub_1", "Postprocessor/Decode/truediv"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/get_center_coordinates_and_sizes/truediv", "op": "Mul", "input": ["ConstantFolding/Postprocessor/Decode/truediv_4_recip", "Postprocessor/Decode/get_center_coordinates_and_sizes/sub_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/mul_3", "op": "Mul", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/sub", "Postprocessor/Decode/truediv_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/get_center_coordinates_and_sizes/truediv_1", "op": "Mul", "input": ["ConstantFolding/Postprocessor/Decode/truediv_4_recip", "Postprocessor/Decode/get_center_coordinates_and_sizes/sub"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/get_center_coordinates_and_sizes/add", "op": "AddV2", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/truediv", "Postprocessor/Decode/get_center_coordinates_and_sizes/unstack"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/truediv_4", "op": "Mul", "input": ["Postprocessor/Decode/Exp_1", "Postprocessor/Decode/get_center_coordinates_and_sizes/truediv"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/get_center_coordinates_and_sizes/add_1", "op": "AddV2", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/truediv_1", "Postprocessor/Decode/get_center_coordinates_and_sizes/unstack:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/truediv_5", "op": "Mul", "input": ["Postprocessor/Decode/Exp", "Postprocessor/Decode/get_center_coordinates_and_sizes/truediv_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/add", "op": "AddV2", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/add", "Postprocessor/Decode/mul_2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/add_1", "op": "AddV2", "input": ["Postprocessor/Decode/get_center_coordinates_and_sizes/add_1", "Postprocessor/Decode/mul_3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/sub", "op": "Sub", "input": ["Postprocessor/Decode/add", "Postprocessor/Decode/truediv_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/add_2", "op": "AddV2", "input": ["Postprocessor/Decode/add", "Postprocessor/Decode/truediv_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/sub_1", "op": "Sub", "input": ["Postprocessor/Decode/add_1", "Postprocessor/Decode/truediv_5"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/add_3", "op": "AddV2", "input": ["Postprocessor/Decode/add_1", "Postprocessor/Decode/truediv_5"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/stack", "op": "Pack", "input": ["Postprocessor/Decode/sub", "Postprocessor/Decode/sub_1", "Postprocessor/Decode/add_2", "Postprocessor/Decode/add_3"], "attr": {"axis": {"i": "0"}, "N": {"i": "4"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Decode/transpose_1", "op": "Transpose", "input": ["Postprocessor/Decode/stack", "Postprocessor/Decode/transpose/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Reshape_2", "op": "Reshape", "input": ["Postprocessor/Decode/transpose_1", "Postprocessor/stack"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/ExpandDims_1", "op": "ExpandDims", "input": ["Postprocessor/Reshape_2", "Postprocessor/ExpandDims_1/dim"], "attr": {"Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/Shape", "op": "Shape", "input": ["Postprocessor/ExpandDims_1"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/Squeeze", "op": "Squeeze", "input": ["Postprocessor/ExpandDims_1"], "attr": {"T": {"type": "DT_FLOAT"}, "squeeze_dims": {"list": {"i": ["2"]}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/strided_slice_1", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/strided_slice_1/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "raw_detection_boxes", "op": "Identity", "input": ["Postprocessor/Squeeze"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_7", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"unknownRank": true}}, "dynamic_size": {"b": false}, "clear_after_read": {"b": true}, "identical_element_shapes": {"b": true}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_9", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"identical_element_shapes": {"b": true}, "tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"unknownRank": true}}, "dynamic_size": {"b": false}, "clear_after_read": {"b": true}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_12", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"element_shape": {"shape": {"unknownRank": true}}, "clear_after_read": {"b": true}, "dynamic_size": {"b": false}, "identical_element_shapes": {"b": true}, "tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_5", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"unknownRank": true}}, "dynamic_size": {"b": false}, "clear_after_read": {"b": true}, "identical_element_shapes": {"b": true}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_8", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"unknownRank": true}}, "clear_after_read": {"b": true}, "dynamic_size": {"b": false}, "identical_element_shapes": {"b": true}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_13", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"tensor_array_name": {"s": ""}, "dtype": {"type": "DT_INT32"}, "element_shape": {"shape": {"unknownRank": true}}, "clear_after_read": {"b": true}, "dynamic_size": {"b": false}, "identical_element_shapes": {"b": true}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_1", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"element_shape": {"shape": {"unknownRank": true}}, "clear_after_read": {"b": true}, "dynamic_size": {"b": false}, "identical_element_shapes": {"b": true}, "tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"dynamic_size": {"b": false}, "clear_after_read": {"b": true}, "identical_element_shapes": {"b": true}, "tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"unknownRank": true}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_6", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"identical_element_shapes": {"b": true}, "tensor_array_name": {"s": ""}, "dtype": {"type": "DT_INT32"}, "element_shape": {"shape": {"unknownRank": true}}, "dynamic_size": {"b": false}, "clear_after_read": {"b": true}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_3", "op": "TensorArrayV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"tensor_array_name": {"s": ""}, "dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"unknownRank": true}}, "clear_after_read": {"b": true}, "dynamic_size": {"b": false}, "identical_element_shapes": {"b": true}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Less/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"T": {"type": "DT_INT32"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/ones/packed_const_axis", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite/TensorArrayWriteV3/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_7"], "attr": {"frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}, "T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_2", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_7:1"], "attr": {"is_constant": {"b": false}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_2/TensorArrayWriteV3/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_9"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_4", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_9:1"], "attr": {"T": {"type": "DT_FLOAT"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_5/TensorArrayWriteV3/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_12"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_7", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_12:1"], "attr": {"T": {"type": "DT_FLOAT"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_5/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_5"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/TensorArrayScatter/TensorArrayScatterV3", "op": "TensorArrayScatterV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/range", "Postprocessor/convert_scores", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_5:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_1/TensorArrayWriteV3/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_8"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_3", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_8:1"], "attr": {"parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}, "T": {"type": "DT_FLOAT"}, "is_constant": {"b": false}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_6/TensorArrayWriteV3/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_13"], "attr": {"is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}, "T": {"type": "DT_RESOURCE"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_8", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_13:1"], "attr": {"frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}, "T": {"type": "DT_FLOAT"}, "is_constant": {"b": false}, "parallel_iterations": {"i": "32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_1/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_1"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_1/TensorArrayScatter/TensorArrayScatterV3", "op": "TensorArrayScatterV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_1/range", "Postprocessor/Slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_1:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3", "op": "TensorArrayScatterV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/range", "Postprocessor/ExpandDims_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_6/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_6"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3/Enter", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_3"], "attr": {"T": {"type": "DT_RESOURCE"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_3/TensorArrayScatter/TensorArrayScatterV3", "op": "TensorArrayScatterV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_3/range", "Postprocessor/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_3:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Less", "op": "Less", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Less/Enter"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Less_1", "op": "Less", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Less/Enter"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/ones/packed", "op": "ExpandDims", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/strided_slice", "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/ones/packed_const_axis"], "attr": {"Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_2", "op": "Merge", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_2"], "attr": {"T": {"type": "DT_FLOAT"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_4", "op": "Merge", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_4"], "attr": {"T": {"type": "DT_FLOAT"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_7", "op": "Merge", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_7", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_7"], "attr": {"T": {"type": "DT_FLOAT"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_5/Enter_1", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/TensorArrayScatter/TensorArrayScatterV3"], "attr": {"is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_3", "op": "Merge", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_3"], "attr": {"T": {"type": "DT_FLOAT"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_8", "op": "Merge", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Enter_8", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_8"], "attr": {"T": {"type": "DT_FLOAT"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_1/Enter_1", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_1/TensorArrayScatter/TensorArrayScatterV3"], "attr": {"is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3/Enter_1", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack/TensorArrayScatter/TensorArrayScatterV3"], "attr": {"T": {"type": "DT_FLOAT"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3/Enter_1", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_3/TensorArrayScatter/TensorArrayScatterV3"], "attr": {"T": {"type": "DT_FLOAT"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LogicalAnd", "op": "LogicalAnd", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Less", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Less_1"]}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/ones", "op": "Fill", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/ones/packed", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"T": {"type": "DT_INT32"}, "index_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LoopCond", "op": "LoopCond", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LogicalAnd"]}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/mul", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/ones", "Postprocessor/BatchMultiClassNonMaxSuppression/strided_slice_1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_2", "op": "Switch", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LoopCond"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_4", "op": "Switch", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LoopCond"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_7", "op": "Switch", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_7", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LoopCond"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_3", "op": "Switch", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LoopCond"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch", "op": "Switch", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LoopCond"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1", "op": "Switch", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LoopCond"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_8", "op": "Switch", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Merge_8", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/LoopCond"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_6/Shape", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/mul"], "attr": {"T": {"type": "DT_INT32"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_2", "op": "Exit", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_4", "op": "Exit", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_7", "op": "Exit", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_7"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_3", "op": "Exit", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity", "op": "Identity", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch:1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3", "op": "TensorArrayReadV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3/Enter_1"], "attr": {"dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3", "op": "TensorArrayReadV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3/Enter_1"], "attr": {"dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_1", "op": "TensorArrayReadV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_1/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_1/Enter_1"], "attr": {"dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_5", "op": "TensorArrayReadV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_5/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_5/Enter_1"], "attr": {"dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_8", "op": "Exit", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_8"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_6/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_6/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/TensorArraySizeV3", "op": "TensorArraySizeV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_7", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_2"]}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_2/TensorArraySizeV3", "op": "TensorArraySizeV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_9", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_4"]}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_5/TensorArraySizeV3", "op": "TensorArraySizeV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_12", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_7"]}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_1/TensorArraySizeV3", "op": "TensorArraySizeV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_8", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_3"]}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_3/x", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_4/shape", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_17/x", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/mul_1/x", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_4/begin", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_1/shape", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice/begin", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape/shape", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "3"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/iou_threshold", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/score_threshold", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/add_1/y", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape/shape", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv/x", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice/stack_1", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_2/stack_1", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack", "op": "Unpack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3"], "attr": {"num": {"i": "4"}, "T": {"type": "DT_FLOAT"}, "axis": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_6/TensorArraySizeV3", "op": "TensorArraySizeV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_13", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_8"]}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_6/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_6/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/TensorArraySizeV3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_2/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_2/TensorArraySizeV3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_5/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_5/TensorArraySizeV3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_1/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_1/TensorArraySizeV3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const", "^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_11", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "1"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_FLOAT"}, "Index": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_1", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_FLOAT"}, "Index": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_2", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"end_mask": {"i": "0"}, "T": {"type": "DT_FLOAT"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_3", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/add", "op": "AddV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Identity", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/add_1", "op": "AddV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_6/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_6/TensorArraySizeV3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_6/TensorArrayScatter/TensorArrayScatterV3", "op": "TensorArrayScatterV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_6", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_6/range", "Postprocessor/BatchMultiClassNonMaxSuppression/mul", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_6:1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/TensorArrayGatherV3", "op": "TensorArrayGatherV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_7", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_2"], "attr": {"dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"dim": [{"size": "100"}, {"size": "4"}]}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_2/TensorArrayGatherV3", "op": "TensorArrayGatherV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_9", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_2/range", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_4"], "attr": {"element_shape": {"shape": {"dim": [{"size": "100"}]}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_5/TensorArrayGatherV3", "op": "TensorArrayGatherV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_12", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_5/range", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_7"], "attr": {"dtype": {"type": "DT_FLOAT"}, "element_shape": {"shape": {"dim": [{"size": "100"}, {"size": "2"}]}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_1/TensorArrayGatherV3", "op": "TensorArrayGatherV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_8", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_1/range", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_3"], "attr": {"element_shape": {"shape": {"dim": [{"size": "100"}]}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/sub", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/sub_2/y", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_3"], "attr": {"N": {"i": "4"}, "T": {"type": "DT_FLOAT"}, "axis": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/sub_1", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration", "op": "NextIteration", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/add"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_1", "op": "NextIteration", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/add_1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_6/TensorArrayGatherV3", "op": "TensorArrayGatherV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArray_13", "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_6/range", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Exit_8"], "attr": {"element_shape": {"shape": {}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_6/Enter_1", "op": "Enter", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_6/TensorArrayScatter/TensorArrayScatterV3"], "attr": {"T": {"type": "DT_FLOAT"}, "is_constant": {"b": true}, "parallel_iterations": {"i": "32"}, "frame_name": {"s": "UG9zdHByb2Nlc3Nvci9CYXRjaE11bHRpQ2xhc3NOb25NYXhTdXBwcmVzc2lvbi9tYXAvd2hpbGUvd2hpbGVfY29udGV4dA=="}}}, {"name": "detection_boxes", "op": "Identity", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/TensorArrayGatherV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "add", "op": "AddV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_2/TensorArrayGatherV3", "add/y"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "detection_multiclass_scores", "op": "Identity", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_5/TensorArrayGatherV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "detection_scores", "op": "Identity", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_1/TensorArrayGatherV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv", "op": "RealDiv", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/sub"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv_1", "op": "RealDiv", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/sub_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/Cast_4", "op": "Cast", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack_6/TensorArrayGatherV3"], "attr": {"Truncate": {"b": false}, "DstT": {"type": "DT_FLOAT"}, "SrcT": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_6", "op": "TensorArrayReadV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_6/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_6/Enter_1"], "attr": {"dtype": {"type": "DT_INT32"}}}, {"name": "detection_classes", "op": "Identity", "input": ["add"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "num_detections", "op": "Identity", "input": ["Postprocessor/Cast_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/stack_4", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_6", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/stack", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_6", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "3"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_1", "op": "Slice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_4/begin", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/stack_4"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_4", "op": "Slice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_4/begin", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/stack_4"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice", "op": "Slice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayReadV3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice/begin", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/stack"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_1", "op": "Reshape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_1/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_4", "op": "Reshape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_4/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape", "op": "Reshape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_1"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/unstack", "op": "Unpack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape"], "attr": {"num": {"i": "1"}, "T": {"type": "DT_FLOAT"}, "axis": {"i": "1"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape_1", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/unstack"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/stack", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_1", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Slice", "op": "Slice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_4/begin", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/stack"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum", "op": "Minimum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Reshape", "op": "Reshape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones/Reshape", "op": "Reshape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape/shape"], "attr": {"T": {"type": "DT_INT32"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/NonMaxSuppressionV5", "op": "NonMaxSuppressionV5", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/unstack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Reshape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/iou_threshold", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/score_threshold", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/add_1/y"], "attr": {"pad_to_max_output_size": {"b": false}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones", "op": "Fill", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones/Reshape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv/x"], "attr": {"T": {"type": "DT_FLOAT"}, "index_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape_2", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/NonMaxSuppressionV5"], "attr": {"T": {"type": "DT_INT32"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/mul", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/mul_1/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_2", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Less", "op": "Less", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_2"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/sub_1", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_2"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros_1/Reshape", "op": "Reshape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/sub_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape/shape"], "attr": {"T": {"type": "DT_INT32"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros_1", "op": "Fill", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros_1/Reshape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/add_1/y"], "attr": {"index_type": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros", "op": "Fill", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros_1/Reshape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"T": {"type": "DT_INT32"}, "index_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/concat_1", "op": "ConcatV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/NonMaxSuppressionV5:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_FLOAT"}, "N": {"i": "2"}, "Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/concat", "op": "ConcatV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/NonMaxSuppressionV5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"T": {"type": "DT_INT32"}, "N": {"i": "2"}, "Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Less", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/concat_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/mul"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather/GatherV2_5", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/unstack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/concat", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather/GatherV2_4", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/concat", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros_like", "op": "ZerosLike", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Shape", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather/GatherV2_5"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/TopKV2", "op": "TopKV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/strided_slice"], "attr": {"sorted": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Gather/GatherV2_5", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/zeros_like", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/TopKV2:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Gather/GatherV2_6", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather/GatherV2_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/TopKV2:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Gather/GatherV2_1", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/TopKV2:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Gather/GatherV2_4", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather/GatherV2_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/TopKV2:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/split", "op": "Split", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Gather/GatherV2_6"], "attr": {"T": {"type": "DT_FLOAT"}, "num_split": {"i": "4"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Minimum", "op": "Minimum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/split", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack:2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Minimum_2", "op": "Minimum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/split:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack:3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Minimum_1", "op": "Minimum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/split:2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack:2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Minimum_3", "op": "Minimum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/split:3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack:3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Maximum", "op": "Maximum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Minimum", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Maximum_2", "op": "Maximum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Minimum_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Maximum_1", "op": "Maximum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Minimum_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Maximum_3", "op": "Maximum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Minimum_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/unstack:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/concat", "op": "ConcatV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Maximum", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Maximum_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Maximum_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Maximum_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta"], "attr": {"Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}, "N": {"i": "4"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/split", "op": "Split", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/concat"], "attr": {"T": {"type": "DT_FLOAT"}, "num_split": {"i": "4"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/sub", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/split:2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/split"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/sub_1", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/split:3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/split:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/mul", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/sub", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/sub_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/Squeeze", "op": "Squeeze", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/mul"], "attr": {"squeeze_dims": {"list": {"i": ["1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Greater", "op": "Greater", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Area/Squeeze", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/add_1/y"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Where", "op": "Where", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Greater"], "attr": {"T": {"type": "DT_BOOL"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Reshape", "op": "Reshape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Where", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape/shape"], "attr": {"T": {"type": "DT_INT64"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Cast", "op": "Cast", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Reshape"], "attr": {"DstT": {"type": "DT_INT32"}, "SrcT": {"type": "DT_INT64"}, "Truncate": {"b": false}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_5", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Gather/GatherV2_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Cast", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_6", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/concat", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Cast", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_1", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Gather/GatherV2_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Cast", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_4", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField/Gather/GatherV2_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Cast", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/split", "op": "Split", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_6"], "attr": {"T": {"type": "DT_FLOAT"}, "num_split": {"i": "4"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape_3", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_6"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/sub", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/split:2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/split"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/sub_1", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/split:3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/split:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_3", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/mul", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/sub", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/sub_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape", "op": "Reshape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape/shape"], "attr": {"T": {"type": "DT_INT32"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/Squeeze", "op": "Squeeze", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/mul"], "attr": {"T": {"type": "DT_FLOAT"}, "squeeze_dims": {"list": {"i": ["1"]}}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1", "op": "Fill", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv/x"], "attr": {"T": {"type": "DT_FLOAT"}, "index_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Cast", "op": "Cast", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Area/Squeeze"], "attr": {"DstT": {"type": "DT_BOOL"}, "SrcT": {"type": "DT_FLOAT"}, "Truncate": {"b": false}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/mul_1", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/mul_1/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select_1", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Cast", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/mul_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/GreaterEqual", "op": "GreaterEqual", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/add_1/y"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/TopKV2", "op": "TopKV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_3"], "attr": {"sorted": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Cast_1", "op": "Cast", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/GreaterEqual"], "attr": {"Truncate": {"b": false}, "DstT": {"type": "DT_INT32"}, "SrcT": {"type": "DT_BOOL"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/Gather/GatherV2_5", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/TopKV2:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/Gather/GatherV2_6", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_6", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/TopKV2:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/Gather/GatherV2_1", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/TopKV2:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/Gather/GatherV2_4", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ClipToWindow/Gather/GatherV2_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/TopKV2:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Sum", "op": "Sum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Cast_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack"], "attr": {"keep_dims": {"b": false}, "Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/sub_2", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/Gather/GatherV2_6", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/sub_2/y"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/split", "op": "Split", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/sub_2"], "attr": {"T": {"type": "DT_FLOAT"}, "num_split": {"i": "4"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/mul", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/split", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/mul_2", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/split:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/mul_1", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/split:2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/mul_3", "op": "Mul", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/split:3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/concat", "op": "ConcatV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/mul", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/mul_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/mul_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/mul_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta"], "attr": {"Tidx": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}, "N": {"i": "4"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape_4", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/concat"], "attr": {"out_type": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_4", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Shape_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum_1", "op": "Minimum", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/strided_slice_4"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Greater", "op": "Greater", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Sum"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_1/GatherV2_5", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/Gather/GatherV2_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_1/GatherV2_6", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/Scale/concat", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_1/GatherV2_1", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/Gather/GatherV2_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_1/GatherV2_4", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/SortByField_1/Gather/GatherV2_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}, "Taxis": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select_2", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Greater", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Sum", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Minimum_1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_6/TensorArrayWriteV3", "op": "TensorArrayWriteV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_6/TensorArrayWriteV3/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_8:1"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_2", "op": "Range", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Select_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta"], "attr": {"Tidx": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_8", "op": "NextIteration", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_6/TensorArrayWriteV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_5", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_1/GatherV2_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_6", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_1/GatherV2_6", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_1", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_1/GatherV2_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_4", "op": "GatherV2", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_1/GatherV2_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"Taxis": {"type": "DT_INT32"}, "batch_dims": {"i": "0"}, "Tindices": {"type": "DT_INT32"}, "Tparams": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_10", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_5"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_6"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_2", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_1"], "attr": {"out_type": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_8", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_4"], "attr": {"out_type": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_18", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_10", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_1", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_4", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_14", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_8", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_15", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_8", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_18", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_18", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_1", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_3/x"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_4", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_14", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_14", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_15", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_15", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_17/x"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_9", "op": "Greater", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_18", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater", "op": "Greater", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_1", "op": "Greater", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_2", "op": "Greater", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_7", "op": "Greater", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_14", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_8", "op": "Greater", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_15", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_9", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_9", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_1", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_3/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_2", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_7", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_7", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_8", "op": "Select", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater_8", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_17/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_5/size_const_axis", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_9"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice/size", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_1"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_1/size_const_axis", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_2"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_4/size", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_7", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_8"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_5/size", "op": "ExpandDims", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_9", "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_5/size_const_axis"], "attr": {"Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice", "op": "Slice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_6", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice/size"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_1/size", "op": "ExpandDims", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select_2", "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_1/size_const_axis"], "attr": {"Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_4", "op": "Slice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_4/size"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_5", "op": "Slice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_11", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_5/size"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_1", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_1", "op": "Slice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/Gather_2/GatherV2_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_11", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_1/size"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_9", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_4"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_11", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_5"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"Index": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_3", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_3", "op": "Shape", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_1"], "attr": {"T": {"type": "DT_FLOAT"}, "out_type": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_16", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_9", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "ellipsis_mask": {"i": "0"}, "begin_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_17", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_9", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_19", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_11", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}, "shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_3", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_3/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_3"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_5", "op": "StridedSlice", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Shape_3", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1"], "attr": {"shrink_axis_mask": {"i": "1"}, "begin_mask": {"i": "0"}, "ellipsis_mask": {"i": "0"}, "new_axis_mask": {"i": "0"}, "end_mask": {"i": "0"}, "T": {"type": "DT_INT32"}, "Index": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_16", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_16"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_17", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_17/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_17"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_19", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_19"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack/values_1", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_3"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_5", "op": "Sub", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_5"], "attr": {"T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_4/values_1", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_16", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_17"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "0"}, "N": {"i": "2"}}}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_5/values_1_const_axis", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_19"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack/values_1"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "1"}, "N": {"i": "2"}}}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_1/values_1_const_axis", "op": "Const", "input": ["^Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_5"], "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_4", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_4/values_1"], "attr": {"axis": {"i": "1"}, "N": {"i": "2"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_5/values_1", "op": "ExpandDims", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_19", "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_5/values_1_const_axis"], "attr": {"Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Pad", "op": "Pad", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_1/values_1", "op": "ExpandDims", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_5", "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_1/values_1_const_axis"], "attr": {"Tdim": {"type": "DT_INT32"}, "T": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Pad_4", "op": "Pad", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_4"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_5", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_11", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_5/values_1"], "attr": {"T": {"type": "DT_INT32"}, "axis": {"i": "1"}, "N": {"i": "2"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite/TensorArrayWriteV3", "op": "TensorArrayWriteV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite/TensorArrayWriteV3/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Pad", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_2:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_1", "op": "Pack", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_11", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_1/values_1"], "attr": {"N": {"i": "2"}, "T": {"type": "DT_INT32"}, "axis": {"i": "1"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_5/TensorArrayWriteV3", "op": "TensorArrayWriteV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_5/TensorArrayWriteV3/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Pad_4", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_7:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Pad_5", "op": "Pad", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_5"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_2", "op": "NextIteration", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite/TensorArrayWriteV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Pad_1", "op": "Pad", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_1"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_7", "op": "NextIteration", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_5/TensorArrayWriteV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_2/TensorArrayWriteV3", "op": "TensorArrayWriteV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_2/TensorArrayWriteV3/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Pad_5", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_4:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_1/TensorArrayWriteV3", "op": "TensorArrayWriteV3", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_1/TensorArrayWriteV3/Enter", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_1:1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Pad_1", "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Switch_3:1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_4", "op": "NextIteration", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_2/TensorArrayWriteV3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/NextIteration_3", "op": "NextIteration", "input": ["Postprocessor/BatchMultiClassNonMaxSuppression/map/while/TensorArrayWrite_1/TensorArrayWriteV3"], "attr": {"T": {"type": "DT_FLOAT"}}}], "versions": {"producer": 175}}, "weightsManifest": [{"paths": ["group1-shard1of1.bin"], "weights": [{"name": "Postprocessor/Slice/begin", "shape": [3], "dtype": "int32"}, {"name": "Postprocessor/Slice/size", "shape": [3], "dtype": "int32"}, {"name": "ConstantFolding/Postprocessor/truediv_recip", "shape": [], "dtype": "float32", "quantization": {"min": 0.0033333334140479565, "scale": 1.0, "dtype": "uint8"}}, {"name": "ConstantFolding/Postprocessor/Decode/truediv_recip", "shape": [], "dtype": "float32", "quantization": {"min": 0.10000000149011612, "scale": 1.0, "dtype": "uint8"}}, {"name": "ConstantFolding/Postprocessor/Decode/truediv_2_recip", "shape": [], "dtype": "float32", "quantization": {"min": 0.20000000298023224, "scale": 1.0, "dtype": "uint8"}}, {"name": "ConstantFolding/Postprocessor/Decode/truediv_4_recip", "shape": [], "dtype": "float32", "quantization": {"min": 0.5, "scale": 1.0, "dtype": "uint8"}}, {"name": "Postprocessor/ExpandDims", "shape": [1, 1917, 4], "dtype": "float32", "quantization": {"min": -0.44369642874773807, "scale": 0.007394940479128968, "dtype": "uint8"}}, {"name": "Postprocessor/Reshape_1/shape", "shape": [2], "dtype": "int32"}, {"name": "Postprocessor/Decode/transpose/perm", "shape": [2], "dtype": "int32"}, {"name": "BoxPredictor_0/BoxEncodingPredictor/weights", "shape": [1, 1, 576, 12], "dtype": "float32", "quantization": {"min": -0.3036351932030098, "scale": 0.002282971377466239, "dtype": "uint8"}}, {"name": "BoxPredictor_0/BoxEncodingPredictor/biases", "shape": [12], "dtype": "float32", "quantization": {"min": -0.19417101507093393, "scale": 0.0014599324441423604, "dtype": "uint8"}}, {"name": "BoxPredictor_1/BoxEncodingPredictor/weights", "shape": [1, 1, 1280, 24], "dtype": "float32", "quantization": {"min": -0.23176893399042242, "scale": 0.0018843002763448977, "dtype": "uint8"}}, {"name": "BoxPredictor_1/BoxEncodingPredictor/biases", "shape": [24], "dtype": "float32", "quantization": {"min": -0.11114039952848472, "scale": 0.0007772055911082847, "dtype": "uint8"}}, {"name": "BoxPredictor_2/BoxEncodingPredictor/weights", "shape": [1, 1, 512, 24], "dtype": "float32", "quantization": {"min": -0.27723511808058793, "scale": 0.0019252438755596386, "dtype": "uint8"}}, {"name": "BoxPredictor_2/BoxEncodingPredictor/biases", "shape": [24], "dtype": "float32", "quantization": {"min": -0.06450644508004189, "scale": 0.0004216107521571365, "dtype": "uint8"}}, {"name": "BoxPredictor_3/BoxEncodingPredictor/weights", "shape": [1, 1, 256, 24], "dtype": "float32", "quantization": {"min": -0.18804316941429589, "scale": 0.0017574127982644475, "dtype": "uint8"}}, {"name": "BoxPredictor_3/BoxEncodingPredictor/biases", "shape": [24], "dtype": "float32", "quantization": {"min": -0.08496430443198073, "scale": 0.0004007750209055695, "dtype": "uint8"}}, {"name": "BoxPredictor_4/BoxEncodingPredictor/weights", "shape": [1, 1, 256, 24], "dtype": "float32", "quantization": {"min": -0.20091771991813887, "scale": 0.0015337230528102202, "dtype": "uint8"}}, {"name": "BoxPredictor_4/BoxEncodingPredictor/biases", "shape": [24], "dtype": "float32", "quantization": {"min": -0.09754308538840098, "scale": 0.0004454022163853926, "dtype": "uint8"}}, {"name": "BoxPredictor_5/BoxEncodingPredictor/weights", "shape": [1, 1, 128, 24], "dtype": "float32", "quantization": {"min": -0.2627319448134478, "scale": 0.0018245273945378321, "dtype": "uint8"}}, {"name": "BoxPredictor_5/BoxEncodingPredictor/biases", "shape": [24], "dtype": "float32", "quantization": {"min": -0.17289040310710083, "scale": 0.0011012127586439544, "dtype": "uint8"}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/strided_slice_1/stack_1", "shape": [1], "dtype": "int32"}, {"name": "BoxPredictor_0/Reshape/shape/3", "shape": [], "dtype": "int32"}, {"name": "BoxPredictor_0/ClassPredictor/weights", "shape": [1, 1, 576, 6], "dtype": "float32", "quantization": {"min": -0.30418201743387707, "scale": 0.0023951339955423393, "dtype": "uint8"}}, {"name": "BoxPredictor_0/ClassPredictor/biases", "shape": [6], "dtype": "float32", "quantization": {"min": -0.5569628757589004, "scale": 0.004385534454794491, "dtype": "uint8"}}, {"name": "BoxPredictor_1/ClassPredictor/weights", "shape": [1, 1, 1280, 12], "dtype": "float32", "quantization": {"min": -0.2821066613290824, "scale": 0.0022039582916334563, "dtype": "uint8"}}, {"name": "BoxPredictor_1/ClassPredictor/biases", "shape": [12], "dtype": "float32", "quantization": {"min": -0.2526559268727022, "scale": 0.001973874428692986, "dtype": "uint8"}}, {"name": "BoxPredictor_2/ClassPredictor/weights", "shape": [1, 1, 512, 12], "dtype": "float32", "quantization": {"min": -0.34977034026501225, "scale": 0.002732580783320408, "dtype": "uint8"}}, {"name": "BoxPredictor_2/ClassPredictor/biases", "shape": [12], "dtype": "float32", "quantization": {"min": -0.14612496845862447, "scale": 0.0011880078736473533, "dtype": "uint8"}}, {"name": "BoxPredictor_3/ClassPredictor/weights", "shape": [1, 1, 256, 12], "dtype": "float32", "quantization": {"min": -0.40458938946910933, "scale": 0.0032367151157528746, "dtype": "uint8"}}, {"name": "BoxPredictor_3/ClassPredictor/biases", "shape": [12], "dtype": "float32", "quantization": {"min": -0.11755274376448463, "scale": 0.0009112615795696483, "dtype": "uint8"}}, {"name": "BoxPredictor_4/ClassPredictor/weights", "shape": [1, 1, 256, 12], "dtype": "float32", "quantization": {"min": -0.2834073957274942, "scale": 0.0023230114403892965, "dtype": "uint8"}}, {"name": "BoxPredictor_4/ClassPredictor/biases", "shape": [12], "dtype": "float32", "quantization": {"min": -0.11294121511426626, "scale": 0.0008621466802615746, "dtype": "uint8"}}, {"name": "BoxPredictor_5/ClassPredictor/weights", "shape": [1, 1, 128, 12], "dtype": "float32", "quantization": {"min": -0.46587592188049765, "scale": 0.0035028264803044938, "dtype": "uint8"}}, {"name": "BoxPredictor_5/ClassPredictor/biases", "shape": [12], "dtype": "float32", "quantization": {"min": -0.2819048976196962, "scale": 0.002185309283873614, "dtype": "uint8"}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/start", "shape": [], "dtype": "int32"}, {"name": "Preprocessor/mul/x", "shape": [], "dtype": "float32", "quantization": {"min": 0.007843137718737125, "scale": 1.0, "dtype": "uint8"}}, {"name": "add/y", "shape": [], "dtype": "float32", "quantization": {"min": 1.0, "scale": 1.0, "dtype": "uint8"}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack", "shape": [1], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayUnstack_5/strided_slice/stack_1", "shape": [1], "dtype": "int32"}, {"name": "BoxPredictor_0/Reshape/shape/1", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/ExpandDims_1/dim", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/TensorArrayStack/range/delta", "shape": [], "dtype": "int32"}, {"name": "FeatureExtractor/MobilenetV2/Conv/Conv2D_weights", "shape": [3, 3, 3, 32], "dtype": "float32", "quantization": {"min": -3.266952271554984, "scale": 0.022530705321068857, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/Conv/Conv2D_bn_offset", "shape": [32], "dtype": "float32", "quantization": {"min": -3.2330650161294376, "scale": 0.024869730893303365, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/depthwise/depthwise_weights", "shape": [3, 3, 32, 1], "dtype": "float32", "quantization": {"min": -20.45621634090648, "scale": 0.15497133591595819, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/depthwise/depthwise_bn_offset", "shape": [32], "dtype": "float32", "quantization": {"min": -2.4253874311260146, "scale": 0.03191299251481598, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/project/Conv2D_weights", "shape": [1, 1, 32, 16], "dtype": "float32", "quantization": {"min": -2.2536846160888673, "scale": 0.01657121041241814, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv/project/Conv2D_bn_offset", "shape": [16], "dtype": "float32", "quantization": {"min": -8.157071506275852, "scale": 0.08157071506275851, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/expand/Conv2D_weights", "shape": [1, 1, 16, 96], "dtype": "float32", "quantization": {"min": -0.717442201165592, "scale": 0.004815048329970416, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/expand/Conv2D_bn_offset", "shape": [96], "dtype": "float32", "quantization": {"min": -1.248693411957984, "scale": 0.021529196757896274, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/depthwise/depthwise_weights", "shape": [3, 3, 96, 1], "dtype": "float32", "quantization": {"min": -6.17048028123145, "scale": 0.10458441154629576, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/depthwise/depthwise_bn_offset", "shape": [96], "dtype": "float32", "quantization": {"min": -12.954243250454175, "scale": 0.07318781497431737, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/project/Conv2D_weights", "shape": [1, 1, 96, 24], "dtype": "float32", "quantization": {"min": -1.4045336428810569, "scale": 0.012004561050265443, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_1/project/Conv2D_bn_offset", "shape": [24], "dtype": "float32", "quantization": {"min": -9.752642530553482, "scale": 0.11893466500674978, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/expand/Conv2D_weights", "shape": [1, 1, 24, 144], "dtype": "float32", "quantization": {"min": -0.5090463897761176, "scale": 0.004757442895103903, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/expand/Conv2D_bn_offset", "shape": [144], "dtype": "float32", "quantization": {"min": -1.2353971481323243, "scale": 0.02422347349279067, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/depthwise/depthwise_weights", "shape": [3, 3, 144, 1], "dtype": "float32", "quantization": {"min": -8.541946336334828, "scale": 0.06101390240239162, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/depthwise/depthwise_bn_offset", "shape": [144], "dtype": "float32", "quantization": {"min": -7.279782631817986, "scale": 0.044119894738290824, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/project/Conv2D_weights", "shape": [1, 1, 144, 24], "dtype": "float32", "quantization": {"min": -1.6007825879489674, "scale": 0.014041952525868135, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_2/project/Conv2D_bn_offset", "shape": [24], "dtype": "float32", "quantization": {"min": -9.027887732374902, "scale": 0.05043512699650783, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/expand/Conv2D_weights", "shape": [1, 1, 24, 144], "dtype": "float32", "quantization": {"min": -0.4194332834552316, "scale": 0.0033554662676418528, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/expand/Conv2D_bn_offset", "shape": [144], "dtype": "float32", "quantization": {"min": -1.6979113130008472, "scale": 0.020961868061738855, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/depthwise/depthwise_weights", "shape": [3, 3, 144, 1], "dtype": "float32", "quantization": {"min": -3.093997702879064, "scale": 0.023089535096112418, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/depthwise/depthwise_bn_offset", "shape": [144], "dtype": "float32", "quantization": {"min": -2.569738480624031, "scale": 0.042126860338098863, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/project/Conv2D_weights", "shape": [1, 1, 144, 32], "dtype": "float32", "quantization": {"min": -1.137538241405113, "scale": 0.007686069198683196, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_3/project/Conv2D_bn_offset", "shape": [32], "dtype": "float32", "quantization": {"min": -8.981792319054696, "scale": 0.06556052787631166, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/expand/Conv2D_weights", "shape": [1, 1, 32, 192], "dtype": "float32", "quantization": {"min": -0.24557891289393105, "scale": 0.0020636883436464795, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/expand/Conv2D_bn_offset", "shape": [192], "dtype": "float32", "quantization": {"min": -1.3689864425098193, "scale": 0.01690106719147925, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/depthwise/depthwise_weights", "shape": [3, 3, 192, 1], "dtype": "float32", "quantization": {"min": -4.2445519765218105, "scale": 0.03120994100383684, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/depthwise/depthwise_bn_offset", "shape": [192], "dtype": "float32", "quantization": {"min": -15.950810275358313, "scale": 0.07896440730375402, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/project/Conv2D_weights", "shape": [1, 1, 192, 32], "dtype": "float32", "quantization": {"min": -1.650467116692487, "scale": 0.013418431843028348, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_4/project/Conv2D_bn_offset", "shape": [32], "dtype": "float32", "quantization": {"min": -8.472946733586928, "scale": 0.05925137575934915, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/expand/Conv2D_weights", "shape": [1, 1, 32, 192], "dtype": "float32", "quantization": {"min": -0.24954561719707413, "scale": 0.0019495751343521417, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/expand/Conv2D_bn_offset", "shape": [192], "dtype": "float32", "quantization": {"min": -0.8614065207687079, "scale": 0.014121418373257507, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/depthwise/depthwise_weights", "shape": [3, 3, 192, 1], "dtype": "float32", "quantization": {"min": -4.098554813160615, "scale": 0.030816201602711396, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/depthwise/depthwise_bn_offset", "shape": [192], "dtype": "float32", "quantization": {"min": -6.239914265800925, "scale": 0.0399994504218008, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/project/Conv2D_weights", "shape": [1, 1, 192, 32], "dtype": "float32", "quantization": {"min": -2.4594488387014355, "scale": 0.019365738887412876, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_5/project/Conv2D_bn_offset", "shape": [32], "dtype": "float32", "quantization": {"min": -5.787861287360098, "scale": 0.04418214723175647, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/expand/Conv2D_weights", "shape": [1, 1, 32, 192], "dtype": "float32", "quantization": {"min": -0.21253151472877055, "scale": 0.0019678843956367643, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/expand/Conv2D_bn_offset", "shape": [192], "dtype": "float32", "quantization": {"min": -1.6164287436242197, "scale": 0.013934730548484653, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/depthwise/depthwise_weights", "shape": [3, 3, 192, 1], "dtype": "float32", "quantization": {"min": -2.8958979185889753, "scale": 0.019699985840741327, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/depthwise/depthwise_bn_offset", "shape": [192], "dtype": "float32", "quantization": {"min": -3.146060696770163, "scale": 0.037453103532978135, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/project/Conv2D_weights", "shape": [1, 1, 192, 64], "dtype": "float32", "quantization": {"min": -1.0826881520888385, "scale": 0.007845566319484337, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_6/project/Conv2D_bn_offset", "shape": [64], "dtype": "float32", "quantization": {"min": -7.665000765931373, "scale": 0.05988281848383885, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/expand/Conv2D_weights", "shape": [1, 1, 64, 384], "dtype": "float32", "quantization": {"min": -0.3004770143359315, "scale": 0.002546415375728233, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/expand/Conv2D_bn_offset", "shape": [384], "dtype": "float32", "quantization": {"min": -1.0710420697343115, "scale": 0.015985702533347933, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/depthwise/depthwise_weights", "shape": [3, 3, 384, 1], "dtype": "float32", "quantization": {"min": -4.368443455415613, "scale": 0.034397192562327664, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/depthwise/depthwise_bn_offset", "shape": [384], "dtype": "float32", "quantization": {"min": -7.737040295320399, "scale": 0.05731140959496592, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/project/Conv2D_weights", "shape": [1, 1, 384, 64], "dtype": "float32", "quantization": {"min": -1.176176526032242, "scale": 0.008282933281917197, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_7/project/Conv2D_bn_offset", "shape": [64], "dtype": "float32", "quantization": {"min": -4.417462933297251, "scale": 0.030465261608946557, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/expand/Conv2D_weights", "shape": [1, 1, 64, 384], "dtype": "float32", "quantization": {"min": -0.28872621480156396, "scale": 0.0022914778952505075, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/expand/Conv2D_bn_offset", "shape": [384], "dtype": "float32", "quantization": {"min": -2.0722635002697216, "scale": 0.014696904257232067, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/depthwise/depthwise_weights", "shape": [3, 3, 384, 1], "dtype": "float32", "quantization": {"min": -11.628696224736233, "scale": 0.11988346623439415, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/depthwise/depthwise_bn_offset", "shape": [384], "dtype": "float32", "quantization": {"min": -5.424217598111022, "scale": 0.035685642092835666, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/project/Conv2D_weights", "shape": [1, 1, 384, 64], "dtype": "float32", "quantization": {"min": -1.2057610062991873, "scale": 0.009569531796025295, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_8/project/Conv2D_bn_offset", "shape": [64], "dtype": "float32", "quantization": {"min": -6.237283613167557, "scale": 0.05154779845593022, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/expand/Conv2D_weights", "shape": [1, 1, 64, 384], "dtype": "float32", "quantization": {"min": -0.4437785960879981, "scale": 0.0035502287687039845, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/expand/Conv2D_bn_offset", "shape": [384], "dtype": "float32", "quantization": {"min": -1.859460215475045, "scale": 0.018053011800728592, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/depthwise/depthwise_weights", "shape": [3, 3, 384, 1], "dtype": "float32", "quantization": {"min": -2.9640750604517323, "scale": 0.07600192462696749, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/depthwise/depthwise_bn_offset", "shape": [384], "dtype": "float32", "quantization": {"min": -4.250758451573989, "scale": 0.029519155913708257, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/project/Conv2D_weights", "shape": [1, 1, 384, 64], "dtype": "float32", "quantization": {"min": -2.253456985249239, "scale": 0.01733428450191722, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_9/project/Conv2D_bn_offset", "shape": [64], "dtype": "float32", "quantization": {"min": -11.13194129046272, "scale": 0.07421294193641813, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/expand/Conv2D_weights", "shape": [1, 1, 64, 384], "dtype": "float32", "quantization": {"min": -0.16064891499631545, "scale": 0.0013276769834406235, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/expand/Conv2D_bn_offset", "shape": [384], "dtype": "float32", "quantization": {"min": -3.7201537272509406, "scale": 0.025307168212591432, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/depthwise/depthwise_weights", "shape": [3, 3, 384, 1], "dtype": "float32", "quantization": {"min": -9.182769584655762, "scale": 0.1457582473754883, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/depthwise/depthwise_bn_offset", "shape": [384], "dtype": "float32", "quantization": {"min": -7.842632099226409, "scale": 0.05159626381070006, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/project/Conv2D_weights", "shape": [1, 1, 384, 96], "dtype": "float32", "quantization": {"min": -0.7285561000599581, "scale": 0.006623237273272346, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_10/project/Conv2D_bn_offset", "shape": [96], "dtype": "float32", "quantization": {"min": -5.784581936106962, "scale": 0.04590938044529335, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/expand/Conv2D_weights", "shape": [1, 1, 96, 576], "dtype": "float32", "quantization": {"min": -0.7049531579017638, "scale": 0.004607536979750091, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/expand/Conv2D_bn_offset", "shape": [576], "dtype": "float32", "quantization": {"min": -3.1814520218793083, "scale": 0.020393923217175054, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/depthwise/depthwise_weights", "shape": [3, 3, 576, 1], "dtype": "float32", "quantization": {"min": -6.451121442458209, "scale": 0.04962401109583238, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/depthwise/depthwise_bn_offset", "shape": [576], "dtype": "float32", "quantization": {"min": -8.422968546549479, "scale": 0.0457770029703776, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/project/Conv2D_weights", "shape": [1, 1, 576, 96], "dtype": "float32", "quantization": {"min": -9.124452299230239, "scale": 0.040734162050135, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_11/project/Conv2D_bn_offset", "shape": [96], "dtype": "float32", "quantization": {"min": -7.800861134248621, "scale": 0.05652797923368566, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/expand/Conv2D_weights", "shape": [1, 1, 96, 576], "dtype": "float32", "quantization": {"min": -0.24872313714494892, "scale": 0.002005831751168943, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/expand/Conv2D_bn_offset", "shape": [576], "dtype": "float32", "quantization": {"min": -2.7135882704865697, "scale": 0.017507021099913353, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/depthwise/depthwise_weights", "shape": [3, 3, 576, 1], "dtype": "float32", "quantization": {"min": -2.9937740999109606, "scale": 0.03402016022626091, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/depthwise/depthwise_bn_offset", "shape": [576], "dtype": "float32", "quantization": {"min": -7.4153728933895335, "scale": 0.04413912436541389, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/project/Conv2D_weights", "shape": [1, 1, 576, 96], "dtype": "float32", "quantization": {"min": -1.2271983847898595, "scale": 0.014105728560802984, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_12/project/Conv2D_bn_offset", "shape": [96], "dtype": "float32", "quantization": {"min": -9.94837053336349, "scale": 0.08221793829226026, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Conv2D_weights", "shape": [1, 1, 96, 576], "dtype": "float32", "quantization": {"min": -0.3471050756819108, "scale": 0.00296671004856334, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/expand/Conv2D_bn_offset", "shape": [576], "dtype": "float32", "quantization": {"min": -3.2662897343729056, "scale": 0.022526136099123486, "dtype": "uint8"}}, {"name": "BoxPredictor_0/BoxEncodingPredictor_depthwise/depthwise_weights", "shape": [3, 3, 576, 1], "dtype": "float32", "quantization": {"min": -2.9772504965464277, "scale": 0.025018911735684265, "dtype": "uint8"}}, {"name": "BoxPredictor_0/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "shape": [576], "dtype": "float32", "quantization": {"min": -7.409586625940659, "scale": 0.049397244172937727, "dtype": "uint8"}}, {"name": "BoxPredictor_0/ClassPredictor_depthwise/depthwise_weights", "shape": [3, 3, 576, 1], "dtype": "float32", "quantization": {"min": -3.336593425975126, "scale": 0.03626731984755572, "dtype": "uint8"}}, {"name": "BoxPredictor_0/ClassPredictor_depthwise/depthwise_bn_offset", "shape": [576], "dtype": "float32", "quantization": {"min": -4.9157051011627795, "scale": 0.03752446642108992, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/depthwise/depthwise_weights", "shape": [3, 3, 576, 1], "dtype": "float32", "quantization": {"min": -11.557372029622396, "scale": 0.08498067668839997, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/depthwise/depthwise_bn_offset", "shape": [576], "dtype": "float32", "quantization": {"min": -7.261099736830768, "scale": 0.06723240497065526, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/project/Conv2D_weights", "shape": [1, 1, 576, 160], "dtype": "float32", "quantization": {"min": -0.5040960788726807, "scale": 0.0033383846282958986, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_13/project/Conv2D_bn_offset", "shape": [160], "dtype": "float32", "quantization": {"min": -4.82019453609691, "scale": 0.03651662527346144, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/expand/Conv2D_weights", "shape": [1, 1, 160, 960], "dtype": "float32", "quantization": {"min": -0.49768055992967947, "scale": 0.0033855820403379555, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/expand/Conv2D_bn_offset", "shape": [960], "dtype": "float32", "quantization": {"min": -1.3465013896717746, "scale": 0.010947165769689224, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/depthwise/depthwise_weights", "shape": [3, 3, 960, 1], "dtype": "float32", "quantization": {"min": -4.336014697130989, "scale": 0.03142039635602166, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/depthwise/depthwise_bn_offset", "shape": [960], "dtype": "float32", "quantization": {"min": -4.085322347341799, "scale": 0.028174636878219306, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/project/Conv2D_weights", "shape": [1, 1, 960, 160], "dtype": "float32", "quantization": {"min": -0.5611852536014482, "scale": 0.004879871770447376, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_14/project/Conv2D_bn_offset", "shape": [160], "dtype": "float32", "quantization": {"min": -3.078909397125244, "scale": 0.0270079771677653, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/expand/Conv2D_weights", "shape": [1, 1, 160, 960], "dtype": "float32", "quantization": {"min": -0.5045319072171753, "scale": 0.0037934729865953033, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/expand/Conv2D_bn_offset", "shape": [960], "dtype": "float32", "quantization": {"min": -1.545624003690832, "scale": 0.014720228606579351, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/depthwise/depthwise_weights", "shape": [3, 3, 960, 1], "dtype": "float32", "quantization": {"min": -5.82016425039254, "scale": 0.05291058409447764, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/depthwise/depthwise_bn_offset", "shape": [960], "dtype": "float32", "quantization": {"min": -10.191536245159075, "scale": 0.057255821602017275, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/project/Conv2D_weights", "shape": [1, 1, 960, 160], "dtype": "float32", "quantization": {"min": -1.5554319143295288, "scale": 0.009844505786895752, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_15/project/Conv2D_bn_offset", "shape": [160], "dtype": "float32", "quantization": {"min": -7.198731725356158, "scale": 0.06665492338292739, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/expand/Conv2D_weights", "shape": [1, 1, 160, 960], "dtype": "float32", "quantization": {"min": -0.3073557472112132, "scale": 0.002035468524577571, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/expand/Conv2D_bn_offset", "shape": [960], "dtype": "float32", "quantization": {"min": -2.105034319559733, "scale": 0.015478193526174508, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/depthwise/depthwise_weights", "shape": [3, 3, 960, 1], "dtype": "float32", "quantization": {"min": -7.599296106076708, "scale": 0.04934607861088772, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/depthwise/depthwise_bn_offset", "shape": [960], "dtype": "float32", "quantization": {"min": -4.26885919009938, "scale": 0.030491851357852713, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/project/Conv2D_weights", "shape": [1, 1, 960, 320], "dtype": "float32", "quantization": {"min": -0.9122615218162538, "scale": 0.009214762846628826, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/expanded_conv_16/project/Conv2D_bn_offset", "shape": [320], "dtype": "float32", "quantization": {"min": -4.991063914579503, "scale": 0.0361671298157935, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/Conv_1/Conv2D_weights", "shape": [1, 1, 320, 1280], "dtype": "float32", "quantization": {"min": -0.30327426405513985, "scale": 0.0021060712781606934, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/Conv_1/Conv2D_bn_offset", "shape": [1280], "dtype": "float32", "quantization": {"min": -3.2459259598862893, "scale": 0.020161030806747138, "dtype": "uint8"}}, {"name": "BoxPredictor_1/BoxEncodingPredictor_depthwise/depthwise_weights", "shape": [3, 3, 1280, 1], "dtype": "float32", "quantization": {"min": -4.904824015673469, "scale": 0.04418760374480603, "dtype": "uint8"}}, {"name": "BoxPredictor_1/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "shape": [1280], "dtype": "float32", "quantization": {"min": -4.426926367890601, "scale": 0.02473143222285252, "dtype": "uint8"}}, {"name": "BoxPredictor_1/ClassPredictor_depthwise/depthwise_weights", "shape": [3, 3, 1280, 1], "dtype": "float32", "quantization": {"min": -5.367579723806942, "scale": 0.04160914514579025, "dtype": "uint8"}}, {"name": "BoxPredictor_1/ClassPredictor_depthwise/depthwise_bn_offset", "shape": [1280], "dtype": "float32", "quantization": {"min": -2.960724067687988, "scale": 0.02902670654596067, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Conv2D_weights", "shape": [1, 1, 1280, 256], "dtype": "float32", "quantization": {"min": -1.0962438330930822, "scale": 0.008700347881691129, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_2_1x1_256/Conv2D_bn_offset", "shape": [256], "dtype": "float32", "quantization": {"min": -0.7948600488550523, "scale": 0.011039722900764616, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/depthwise_weights", "shape": [3, 3, 256, 1], "dtype": "float32", "quantization": {"min": -2.856312359080595, "scale": 0.028851639990713083, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512_depthwise/depthwise_bn_offset", "shape": [256], "dtype": "float32", "quantization": {"min": -5.578946366029627, "scale": 0.04463157092823702, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Conv2D_weights", "shape": [1, 1, 256, 512], "dtype": "float32", "quantization": {"min": -1.1745044399710263, "scale": 0.00932146380929386, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_2_3x3_s2_512/Conv2D_bn_offset", "shape": [512], "dtype": "float32", "quantization": {"min": -2.643672120337393, "scale": 0.023604215360155292, "dtype": "uint8"}}, {"name": "BoxPredictor_2/BoxEncodingPredictor_depthwise/depthwise_weights", "shape": [3, 3, 512, 1], "dtype": "float32", "quantization": {"min": -3.5155512164620792, "scale": 0.030570010577931125, "dtype": "uint8"}}, {"name": "BoxPredictor_2/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "shape": [512], "dtype": "float32", "quantization": {"min": -3.44684689465691, "scale": 0.023447938058890547, "dtype": "uint8"}}, {"name": "BoxPredictor_2/ClassPredictor_depthwise/depthwise_weights", "shape": [3, 3, 512, 1], "dtype": "float32", "quantization": {"min": -3.068805052252377, "scale": 0.03099803083083209, "dtype": "uint8"}}, {"name": "BoxPredictor_2/ClassPredictor_depthwise/depthwise_bn_offset", "shape": [512], "dtype": "float32", "quantization": {"min": -3.275853353388169, "scale": 0.02663295409258674, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Conv2D_weights", "shape": [1, 1, 512, 128], "dtype": "float32", "quantization": {"min": -0.4625825061517604, "scale": 0.004057741282032986, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_3_1x1_128/Conv2D_bn_offset", "shape": [128], "dtype": "float32", "quantization": {"min": -1.0599642949945787, "scale": 0.011397465537576115, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/depthwise_weights", "shape": [3, 3, 128, 1], "dtype": "float32", "quantization": {"min": -1.8425225000755459, "scale": 0.017888567961898503, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256_depthwise/depthwise_bn_offset", "shape": [128], "dtype": "float32", "quantization": {"min": -2.541252940308814, "scale": 0.024672358643774893, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Conv2D_weights", "shape": [1, 1, 128, 256], "dtype": "float32", "quantization": {"min": -1.5417480069048264, "scale": 0.009122769271626191, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_3_3x3_s2_256/Conv2D_bn_offset", "shape": [256], "dtype": "float32", "quantization": {"min": -2.466417724010991, "scale": 0.021447110643573835, "dtype": "uint8"}}, {"name": "BoxPredictor_3/BoxEncodingPredictor_depthwise/depthwise_weights", "shape": [3, 3, 256, 1], "dtype": "float32", "quantization": {"min": -2.2150684356689454, "scale": 0.019955571492513022, "dtype": "uint8"}}, {"name": "BoxPredictor_3/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "shape": [256], "dtype": "float32", "quantization": {"min": -3.356351786968755, "scale": 0.021794492123173734, "dtype": "uint8"}}, {"name": "BoxPredictor_3/ClassPredictor_depthwise/depthwise_weights", "shape": [3, 3, 256, 1], "dtype": "float32", "quantization": {"min": -2.6453999266904944, "scale": 0.02261025578367944, "dtype": "uint8"}}, {"name": "BoxPredictor_3/ClassPredictor_depthwise/depthwise_bn_offset", "shape": [256], "dtype": "float32", "quantization": {"min": -1.6936484467749502, "scale": 0.018409222247553807, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Conv2D_weights", "shape": [1, 1, 256, 128], "dtype": "float32", "quantization": {"min": -0.4466410293298609, "scale": 0.004557561523774091, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_4_1x1_128/Conv2D_bn_offset", "shape": [128], "dtype": "float32", "quantization": {"min": -1.0646021950478648, "scale": 0.011961822416268144, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/depthwise_weights", "shape": [3, 3, 128, 1], "dtype": "float32", "quantization": {"min": -7.973233475404627, "scale": 0.06589449153226964, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256_depthwise/depthwise_bn_offset", "shape": [128], "dtype": "float32", "quantization": {"min": -1.331887483596802, "scale": 0.01566926451290355, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Conv2D_weights", "shape": [1, 1, 128, 256], "dtype": "float32", "quantization": {"min": -1.0116581285701078, "scale": 0.009634839319715312, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_4_3x3_s2_256/Conv2D_bn_offset", "shape": [256], "dtype": "float32", "quantization": {"min": -3.8487168368171245, "scale": 0.029156945733463065, "dtype": "uint8"}}, {"name": "BoxPredictor_4/BoxEncodingPredictor_depthwise/depthwise_weights", "shape": [3, 3, 256, 1], "dtype": "float32", "quantization": {"min": -1.4936277613920323, "scale": 0.013829886679555856, "dtype": "uint8"}}, {"name": "BoxPredictor_4/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "shape": [256], "dtype": "float32", "quantization": {"min": -1.2574968782125735, "scale": 0.013236809244342878, "dtype": "uint8"}}, {"name": "BoxPredictor_4/ClassPredictor_depthwise/depthwise_weights", "shape": [3, 3, 256, 1], "dtype": "float32", "quantization": {"min": -1.8091270993737614, "scale": 0.017229781898797727, "dtype": "uint8"}}, {"name": "BoxPredictor_4/ClassPredictor_depthwise/depthwise_bn_offset", "shape": [256], "dtype": "float32", "quantization": {"min": -1.2952956358591716, "scale": 0.015061577161153158, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Conv2D_weights", "shape": [1, 1, 256, 64], "dtype": "float32", "quantization": {"min": -0.4122393015552969, "scale": 0.00288279231856851, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_1_Conv2d_5_1x1_64/Conv2D_bn_offset", "shape": [64], "dtype": "float32", "quantization": {"min": -0.0837679733248318, "scale": 0.005584531554988786, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/depthwise_weights", "shape": [3, 3, 64, 1], "dtype": "float32", "quantization": {"min": -4.725577842488009, "scale": 0.036632386375876035, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128_depthwise/depthwise_bn_offset", "shape": [64], "dtype": "float32", "quantization": {"min": -6.295907862046186, "scale": 0.0374756420359892, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Conv2D_weights", "shape": [1, 1, 64, 128], "dtype": "float32", "quantization": {"min": -2.5655372058644015, "scale": 0.017334710850435146, "dtype": "uint8"}}, {"name": "FeatureExtractor/MobilenetV2/layer_19_2_Conv2d_5_3x3_s2_128/Conv2D_bn_offset", "shape": [128], "dtype": "float32", "quantization": {"min": -3.7671572544995473, "scale": 0.03883667272679946, "dtype": "uint8"}}, {"name": "BoxPredictor_5/BoxEncodingPredictor_depthwise/depthwise_weights", "shape": [3, 3, 128, 1], "dtype": "float32", "quantization": {"min": -2.0120678415485456, "scale": 0.014475308212579465, "dtype": "uint8"}}, {"name": "BoxPredictor_5/BoxEncodingPredictor_depthwise/depthwise_bn_offset", "shape": [128], "dtype": "float32", "quantization": {"min": -1.9828704226250742, "scale": 0.015613152934055703, "dtype": "uint8"}}, {"name": "BoxPredictor_5/ClassPredictor_depthwise/depthwise_weights", "shape": [3, 3, 128, 1], "dtype": "float32", "quantization": {"min": -2.3186090637655816, "scale": 0.018401659236234776, "dtype": "uint8"}}, {"name": "BoxPredictor_5/ClassPredictor_depthwise/depthwise_bn_offset", "shape": [128], "dtype": "float32", "quantization": {"min": -2.489729236153995, "scale": 0.02127973706114526, "dtype": "uint8"}}, {"name": "Preprocessor/map/while/ResizeImage/stack_1", "shape": [3], "dtype": "int32"}, {"name": "Preprocessor/map/while/ResizeImage/resize/ExpandDims/dim", "shape": [], "dtype": "int32"}, {"name": "Preprocessor/map/while/ResizeImage/stack", "shape": [2], "dtype": "int32"}, {"name": "Preprocessor/map/while/add/y", "shape": [], "dtype": "int32"}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/ones/packed_const_axis", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_3/x", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_4/shape", "shape": [2], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_17/x", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/mul_1/x", "shape": [], "dtype": "float32", "quantization": {"min": -1.0, "scale": 1.0, "dtype": "uint8"}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice_4/begin", "shape": [2], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape_1/shape", "shape": [2], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/sub_2/x", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Slice/begin", "shape": [3], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Select/e", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/Reshape/shape", "shape": [3], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/iou_threshold", "shape": [], "dtype": "float32", "quantization": {"min": 0.6000000238418579, "scale": 1.0, "dtype": "uint8"}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/non_max_suppression_with_scores/score_threshold", "shape": [], "dtype": "float32", "quantization": {"min": 9.99999993922529e-09, "scale": 1.0, "dtype": "uint8"}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/add_1/y", "shape": [], "dtype": "float32", "quantization": {"min": 0.0, "scale": 1.0, "dtype": "uint8"}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ones_1/Reshape/shape", "shape": [1], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/Const", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/truediv/x", "shape": [], "dtype": "float32", "quantization": {"min": 1.0, "scale": 1.0, "dtype": "uint8"}}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice/stack_1", "shape": [1], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/ChangeCoordinateFrame/strided_slice_2/stack_1", "shape": [1], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1/shape_as_tensor", "shape": [1], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack", "shape": [1], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/strided_slice_2/stack_1", "shape": [1], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/MultiClassNonMaxSuppression/range_1/delta", "shape": [], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_1", "shape": [2], "dtype": "int32"}, {"name": "Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/zeros_11", "shape": [1], "dtype": "int32"}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_5/size_const_axis", "shape": [], "dtype": "int32"}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Slice_1/size_const_axis", "shape": [], "dtype": "int32"}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_5/values_1_const_axis", "shape": [], "dtype": "int32"}, {"name": "ConstantFolding/Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/stack_1/values_1_const_axis", "shape": [], "dtype": "int32"}]}]} \ No newline at end of file diff --git a/workers/detection-worker.ts b/workers/detection-worker.ts deleted file mode 100644 index 7bf39fa..0000000 --- a/workers/detection-worker.ts +++ /dev/null @@ -1,195 +0,0 @@ -import type { DetectionConfig, DetectionResult, WorkerMessage, WorkerResponse } from '../lib/ml/types'; -import { InferencePipeline } from '../lib/ml/inference-pipeline'; - -declare const self: DedicatedWorkerGlobalScope; - -let tfGlobal: any = null; -let model: any = null; -let config: DetectionConfig | null = null; -let pipeline: InferencePipeline | null = null; - -async function initialize(id: string) { - console.log('Initializing worker...'); - - tfGlobal = await import('@tensorflow/tfjs'); - await import('@tensorflow/tfjs-backend-webgl'); - - await tfGlobal.setBackend('webgl'); - await tfGlobal.ready(); - console.log('TensorFlow.js backend set to:', tfGlobal.getBackend()); - - pipeline = new InferencePipeline(); - - self.postMessage({ type: 'INITIALIZED', id }); -} - -async function loadModelWorker(variant: 'quantized' | 'standard' | 'full', modelData: ArrayBuffer, id: string) { - console.log(`Worker: Loading model ${variant}...`); - try { - if (!tfGlobal) { - throw new Error('TensorFlow.js not initialized'); - } - - // Use local model files from public folder with full URL for worker context - const baseUrl = self.location.origin; - const modelUrls = { - 'quantized': `${baseUrl}/models/model.json`, - 'standard': `${baseUrl}/models/model.json`, - 'full': `${baseUrl}/models/model.json` - }; - - console.log(`Worker: Loading REAL model from ${modelUrls[variant]}`); - - // Load the real model like in the working GitHub implementation - model = await tfGlobal.loadGraphModel(modelUrls[variant]); - console.log('Worker: Real model loaded successfully', model); - - // Warm up the model like the working implementation - if (model && config) { - console.log('Worker: Warming up model with input size:', config.inputSize); - const dummyFloat = tfGlobal.zeros([1, ...config.inputSize, 3]); - const dummyInput = tfGlobal.cast(dummyFloat, 'int32'); - dummyFloat.dispose(); - - const result = await model.executeAsync( - { image_tensor: dummyInput }, - ['detection_boxes', 'num_detections', 'detection_classes', 'detection_scores'] - ); - console.log('Worker: Warmup result:', result); - dummyInput.dispose(); - if (Array.isArray(result)) { - result.forEach(t => t.dispose()); - } else if (result) { - result.dispose(); - } - console.log('Worker: Model warmed up successfully.'); - } - self.postMessage({ type: 'LOADED_MODEL', id }); - } catch (error) { - console.error(`Worker: Failed to load model ${variant}:`, error); - self.postMessage({ type: 'ERROR', error: error instanceof Error ? error.message : 'Unknown error during model loading', id }); - } -} - -async function configureWorker(newConfig: DetectionConfig, id: string) { - console.log('Worker: Configuring...'); - config = newConfig; - self.postMessage({ type: 'CONFIGURED', id }); -} - -async function detect(imageData: ImageData, id: string) { - console.log('Worker: detect function called.'); - if (!model || !config || !pipeline) { - self.postMessage({ type: 'ERROR', error: 'Worker not initialized or configured.', id }); - return; - } - - const tensor = tfGlobal.tidy(() => { - // Convert ImageData to tensor in Web Worker context - const { data, width, height } = imageData; - - // In Web Worker, we need to create tensor manually from the pixel data - // Convert RGBA to RGB by dropping every 4th value (alpha channel) - const rgbData = new Uint8Array(width * height * 3); - for (let i = 0; i < width * height; i++) { - rgbData[i * 3] = data[i * 4]; // R - rgbData[i * 3 + 1] = data[i * 4 + 1]; // G - rgbData[i * 3 + 2] = data[i * 4 + 2]; // B - // Skip alpha channel (data[i * 4 + 3]) - } - - // Create tensor from RGB data - const img = tfGlobal.tensor3d(rgbData, [height, width, 3]); - - // Resize to model input size (300x300) - this returns float32 - const resized = tfGlobal.image.resizeBilinear(img, config!.inputSize); - - // Cast to int32 as required by the model - const int32Tensor = tfGlobal.cast(resized, 'int32'); - - return int32Tensor.expandDims(0); // Now properly int32 - }); - - try { - console.log('Worker: About to execute model with tensor shape:', tensor.shape, 'dtype:', tensor.dtype); - // Use the same input format as the working implementation - const result = await model.executeAsync( - { image_tensor: tensor }, - ['detection_boxes', 'num_detections', 'detection_classes', 'detection_scores'] - ); - tensor.dispose(); - - // Reduced logging for performance - if (process.env.NODE_ENV === 'development') { - console.log('Worker: Model execution completed, processing results...'); - } - - if (!result || !Array.isArray(result) || result.length < 4) { - console.error('Worker: Invalid model output:', result); - self.postMessage({ type: 'DETECTION_RESULT', result: null, id }); - return; - } - - // Match the working implementation: [boxes, num_detections, classes, scores] - const [boxes, numDetections, classes, scores] = result; - console.log('Worker: Extracting data from tensors...'); - - const boxesData = await boxes.data(); - const scoresData = await scores.data(); - const classesData = await classes.data(); - - // Only log detailed outputs when debugging specific issues - const maxScore = Math.max(...Array.from(scoresData.slice(0, 10))); - const scoresAbove30 = Array.from(scoresData.slice(0, 10)).filter(s => s > 0.3).length; - - if (process.env.NODE_ENV === 'development' && (maxScore > 0.3 || scoresAbove30 > 0)) { - console.log('Worker: Potential detection found:', { maxScore, scoresAbove30 }); - } - - result.forEach(t => t.dispose()); - - const detectionResult = pipeline.process( - boxesData as number[], - scoresData as number[], - classesData as number[], - config.confidenceThreshold - ); - - console.log('Worker detectionResult:', detectionResult); - - self.postMessage({ type: 'DETECTION_RESULT', result: detectionResult, id }); - } catch (error) { - tensor.dispose(); - console.error('Worker: Detection execution failed:', error); - console.error('Worker: Error stack:', error.stack); - self.postMessage({ type: 'ERROR', error: error instanceof Error ? error.message : 'Detection execution failed', id }); - } -} - -(async () => { - self.onmessage = async (event: MessageEvent) => { - try { - switch (event.data.type) { - case 'INITIALIZE': - await initialize(event.data.id); - break; - case 'LOAD_MODEL': - await loadModelWorker(event.data.variant, event.data.modelData, event.data.id); - break; - case 'CONFIGURE': - await configureWorker(event.data.config, event.data.id); - break; - case 'DETECT': - await detect(event.data.imageData, event.data.id); - break; - case 'UPDATE_CONFIG': - await configureWorker(event.data.config, event.data.id); - break; - default: - throw new Error(`Unknown message type: ${(event.data as any).type}`); - } - } catch (error) { - self.postMessage({ type: 'ERROR', error: error instanceof Error ? error.message : 'Unknown error in worker', id: event.data.id }); - } - }; -})(); \ No newline at end of file