Pull to refresh

Comments 9

Большое спасибо что поделились опытом!
Рад, что оказалось полезно
val result: Seq[Array[Float]] = model.predict(dataBatch) map { ndArray =>
  val array = ndArray.toArray
  ndArray.dispose()
  array
}


Вроде насколько я помню плохо мешать стили использования методов (инфиксную и обычную нотации). Огромная вариативность в стиле написания — это наверное самое неудобное в Scala для использования, много отсебятины.
Спасибо за отзыв!
Тут бытует масса мнений :-)
В данном случае есть некая коллекция model.predict(dataBatch) к которой, на мой взгляд, удобно применить модифицирующую функцию map без лишних точек.
Равносильно как здесь:
val res = x + y
val res = x.+(y)

Учитывая что в scala всё методы вторая запись не лишена смысла, но согласись, выглядет как-то не особо.
Также и с коллекциями:
val seq1 = Seq(1,2,3)
val res = seq1 map (_ + 1)
val res = seq1.map(_ + 1)

Лично для меня первый вариант выглядет предпочтительнее, но это сугубо моё мнение.

На этот счет уже достаточно давно существуют рекомендации от автора языка Мартина Одерского: https://youtu.be/kkTFx3-duc8?t=1822. Крайне рекомендую к просмотру.


Для тех, кому лень смотреть, продублирую эти простые правила здесь:


  • если имя метода состоит из символов — всегда инфиксная запись
  • если имя метода состоит из букв и цифр — можно и так и так
  • если цепочка вызовов — всегда пишем через точку
Спасибо за полезную ссылку :-)
Для запуска моделей из под докера на GPU раньше надо было использовать nvidia-docker и указывать --runtime=nvidia, а параметров из статьи --device /dev/nvidia* не встречал, это недавно поменялось?
--runtime=nvidia такой запуск тоже возможен, я честно говоря не пробовал, предпочитаю прописывать девайсы вручную
Отличная идея для «практикующих» людей в камуфляже со знаками различия и без как оценка снимков с дронов — Т-64БМ — 3 шт., Т-72Б3 — 1 шт. ;-)
Sign up to leave a comment.