Есть ли способ запустить код, используя caffe из дерева caffe ssd, используя Windows?

Это работает для меня в настоящее время (2018-03, угловой 5.2 с AoT, проверено в angular-cli и пользовательской сборке webpack):

Сначала создайте инъекционную службу, которая предоставляет ссылку на окно :

import { Injectable } from '@angular/core';

// This interface is optional, showing how you can add strong typings for custom globals.
// Just use "Window" as the type if you don't have custom global stuff
export interface ICustomWindow extends Window {
    __custom_global_stuff: string;
}

function getWindow (): any {
    return window;
}

@Injectable()
export class WindowRefService {
    get nativeWindow (): ICustomWindow {
        return getWindow();
    }
}

Теперь зарегистрируйте эту службу с вашим корневым AppModule, чтобы ее можно было ввести повсюду:

import { WindowRefService } from './window-ref.service';

@NgModule({        
  providers: [
    WindowRefService 
  ],
  ...
})
export class AppModule {}

, а затем позже, где вам нужно ввести window:

import { Component} from '@angular/core';
import { WindowRefService, ICustomWindow } from './window-ref.service';

@Component({ ... })
export default class MyCoolComponent {
    private _window: ICustomWindow;

    constructor (
        windowRef: WindowRefService
    ) {
        this._window = windowRef.nativeWindow;
    }

    public doThing (): void {
        let foo = this._window.XMLHttpRequest;
        let bar = this._window.__custom_global_stuff;
    }
...

Вы также можете добавить nativeDocument и другие глобалы к этой службе аналогичным образом, если вы используете их в своем приложении.


edit: Обновлено с предложением Truchainz. edit2: Обновлено для углового 2.1.2 edit3: Добавлены примечания AoT edit4: Добавление обходного примечания типа any edit5: Обновленное решение для использования WindowRefService, которое исправляет ошибку, которую я получал при использовании предыдущего решения с другим редактором edit6: добавление примера custom Ввод текста

0
задан John Slaine 15 January 2019 в 20:13
поделиться

1 ответ

Caffe-SSD - это не ветвь, а развилка ванильного Caffe. Компиляция и использование Caffe в Windows требует определенных усилий (например, предварительной сборки некоторых внешних библиотек, настройки конфигурации CMake и т. Д.), Чего не было сделано для вилки Caffe-SSD.

Вам необходимо объединить вклады из ветки Windows в Caffe-SSD. Для этого есть несколько решений ( https://github.com/runhang/caffe-ssd-windows , https://github.com/gustavkkk/caffe-ssd-win ], Google для более), но я не использовал их.

0
ответ дан Dmytro Prylipko 15 January 2019 в 20:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: