Лучший способ записать изображение в Django HttpResponse ()

2 решения на основе пакетов ROCR и pROC:

threshold1 <- function(predict, response) {
    perf <- ROCR::performance(ROCR::prediction(predict, response), "sens", "spec")
    df <- data.frame(cut = perf@alpha.values[[1]], sens = perf@x.values[[1]], spec = perf@y.values[[1]])
    df[which.max(df$sens + df$spec), "cut"]
}
threshold2 <- function(predict, response) {
    r <- pROC::roc(response, predict)
    r$thresholds[which.max(r$sensitivities + r$specificities)]
}
data(ROCR.simple, package = "ROCR")
threshold1(ROCR.simple$predictions, ROCR.simple$labels)
#> [1] 0.5014893
threshold2(ROCR.simple$predictions, ROCR.simple$labels)
#> [1] 0.5006387

См. также пакет OptimalCutpoints, который предоставляет множество алгоритмов для поиска оптимальных порогов.

43
задан k-g-f 9 June 2010 в 04:50
поделиться

1 ответ

Просто наткнулся на несколько плохой совет (для производства) и думал, что я упомяну X-Sendfile, который работает и с Apache и с Nginx и вероятно другими веб-серверами также.

https://pythonhosted.org/xsendfile /

современные веб-серверы как Nginx обычно могут служить файлам быстрее, более эффективно и более надежно, чем какое-либо веб-приложение они размещают. Эти серверы также могут отправить клиенту файл на диске, как указано веб-приложениями, которые они размещают. Эта функция обычно известна как X-Sendfile.

Эта простая библиотека помогает любому приложению WSGI использовать X-Sendfile, так, чтобы они могли управлять, может ли файл быть подан или что еще сделать, когда файл подается, не пишущий определенные для сервера расширения. Варианты использования включают:

  • Ограничивают загрузки документа аутентифицируемыми пользователями.

  • Журнал who’s загрузил файл. Вынудите файл быть загруженным вместо представленного браузером или служите ему с именем, отличающимся от того на диске путем установки заголовка Довольного Расположения.

основная идея - Вы, открывают файл и пасуют назад тот дескриптор к веб-серверу, который затем возвращает байты клиенту, освобождая Ваш код Python для обрабатывания следующего запроса. Это намного более производительно, чем решение выше, так как медленный клиент на другом конце мог подвесить Ваш поток Python столько, сколько это берет для загрузки файла.

Вот repo, который показывает, как сделать это для различных веб-серверов и хотя это довольно старо, это, по крайней мере, даст Вам общее представление о том, что необходимо сделать. https://github.com/johnsensible/django-sendfile

1
ответ дан 26 November 2019 в 22:54
поделиться
Другие вопросы по тегам:

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