Size: a a a

2020 October 08

E

Eugene in PiterPy Meetup
источник

A🚀

Andrey 🚀🚀🚀 Popp... in PiterPy Meetup
Класс
источник

Б

Боброний in PiterPy Meetup
types.DynamicClassAttribute is a decorator that allows having a @property that behaves differently when it's called from the class and when from the instance.

from types import DynamicClassAttribute

class Meta(type):
   @property
   def hello(cls):
       return f'hello from Meta ({cls})'

class C(metaclass=Meta):
   @DynamicClassAttribute
   def hello(self):
       return f'hello from C ({self})'

C.hello
# "hello from Meta (<class '__main__.C'>)"

C().hello
# 'hello from C (<__main__.C object ...)'


Practically, it is used only in enum to provide name and value properties for instances while still allowing to have name and value class members:

import enum

class E(enum.Enum):
   value = 1

E.value
# <E.value: 1>

E.value.value
# 1
источник

Б

Боброний in PiterPy Meetup
Боброний
types.DynamicClassAttribute is a decorator that allows having a @property that behaves differently when it's called from the class and when from the instance.

from types import DynamicClassAttribute

class Meta(type):
   @property
   def hello(cls):
       return f'hello from Meta ({cls})'

class C(metaclass=Meta):
   @DynamicClassAttribute
   def hello(self):
       return f'hello from C ({self})'

C.hello
# "hello from Meta (<class '__main__.C'>)"

C().hello
# 'hello from C (<__main__.C object ...)'


Practically, it is used only in enum to provide name and value properties for instances while still allowing to have name and value class members:

import enum

class E(enum.Enum):
   value = 1

E.value
# <E.value: 1>

E.value.value
# 1
TRIGGERED
источник

Б

Боброний in PiterPy Meetup
Сделал MR в CPython с выпиливанием этой бесполезной и медленной штуки из енума
источник

Б

Боброний in PiterPy Meetup
Боброний
types.DynamicClassAttribute is a decorator that allows having a @property that behaves differently when it's called from the class and when from the instance.

from types import DynamicClassAttribute

class Meta(type):
   @property
   def hello(cls):
       return f'hello from Meta ({cls})'

class C(metaclass=Meta):
   @DynamicClassAttribute
   def hello(self):
       return f'hello from C ({self})'

C.hello
# "hello from Meta (<class '__main__.C'>)"

C().hello
# 'hello from C (<__main__.C object ...)'


Practically, it is used only in enum to provide name and value properties for instances while still allowing to have name and value class members:

import enum

class E(enum.Enum):
   value = 1

E.value
# <E.value: 1>

E.value.value
# 1
Питон из коробки так работает, зачем понадобилось городить DynamicClassAttribute для енума, для меня загадка

class Meta(type):
   @property
   def hello(cls):
       return f'hello from Meta ({cls})'


class C(metaclass=Meta):
   
   def __init__(self):
       self.hello = f'hello from C ({self})'


assert C.hello == f'hello from Meta ({C})'
c = C()
assert c.hello == f'hello from C ({c})'
источник
2020 October 09

p

pragus in PiterPy Meetup
источник

p

pragus in PiterPy Meetup
а кто нейроночки на gpu гоняет? там только nvidia или же amd тоже норм?
источник

AZ

Andrey Zakharevich in PiterPy Meetup
pragus
а кто нейроночки на gpu гоняет? там только nvidia или же amd тоже норм?
Только nvidia. Потому что у них есть cuda, а у других нет
источник

E

Eugene in PiterPy Meetup
Andrey Zakharevich
Только nvidia. Потому что у них есть cuda, а у других нет
у других есть opencl
источник

AZ

Andrey Zakharevich in PiterPy Meetup
Ну в реальности все нейроночные фреймворки ориентированы на cuda, остальное по остаточному принципу. Может что-то и заведётся, но это лотерея
источник

E

Eugene in PiterPy Meetup
инференс моделей теоретически можно сделать под что угодно. у intel например есть решения для того, чтобы нейронки гонять
источник

AZ

Andrey Zakharevich in PiterPy Meetup
Ну на инференс и на cpu не редко ресурсов хватит. А с обучением другое дело
источник

E

Eugene in PiterPy Meetup
ну да, насколько я знаю у pytorch только cuda,
источник

VA

Vladimir Ageev in PiterPy Meetup
У amd есть rocm и форки tf/pytorch, которые позволяют работать с их гпу:

https://rocmdocs.amd.com/en/latest/Deep_learning/Deep-learning.html

Если успешно завести, этого возможно хватит, чтобы немного поиграться.
Не знаю какой статус у проекта прямо сейчас, но гитхаб вроде бы живой.

Еще один вариант:
https://github.com/plaidml/plaidml

Этот проект, похоже, скорее мертв чем жив, но если уже есть gpu от amd, то можно поиграться.
Из минусов, только Keras API, зато на macOS можно работать, в отличие от решения от AMD.

В остальном, как уже выше написали, у nvidia по сути монополия из-за cuda.
источник

RC

Ruslan Chekalov in PiterPy Meetup
но дешевле конечно купить nvidia
источник

E

Eugene in PiterPy Meetup
и разумнее, потому что неофициальная поддержка и форки всегда будут отставать, а однажды могут просто умереть.
источник

E

Eugene in PiterPy Meetup
источник
2020 October 10

DB

Dima Boger in PiterPy Meetup
А кто-нибудь решал проблему обратную темплейтингу? Т.е. есть набор строк, и нужно понять из какого темплейта они появились? Аля
Retry in 5 seconds, Retry in 10 seconds -> Retry in %d seconds
источник

DB

Dima Boger in PiterPy Meetup
Я точно видел такое в grouping сентри:
источник