Python type() и isinstance() не распознают экземпляр классаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python type() и isinstance() не распознают экземпляр класса

Сообщение Anonymous »

Код: Выделить всё

isinstance(object, classinfo)
не распознает экземпляр класса.

Я напечатал тип(объект) и сам класс, чтобы убедиться, что они относятся к одному и тому же типу. Они оба напечатали одно и то же, однако, когда я попробовал type(object) == class, он вернул False.

вот код для класс:

Код: Выделить всё

class Convolute(object):
def __init__(self, channels, filter_shape, pool_shape, pool_type, stride_length=1):
self.channels = channels
self.filter_shape = filter_shape
self.filters = [np.random.randn(filter_shape[0], filter_shape[1]) for i in range(channels)]
self.biases = [random.random() for i in range (channels)]
self.stride_length = stride_length
self.pool_shape = pool_shape
self.pool_type = pool_type
вот экземпляр класса:

Код: Выделить всё

con1 = n.Convolute(3, (4, 4), (4, 4), 0)
вот результат работы оболочки Python, когда я попытался убедиться, что они одного типа:

Код: Выделить всё

>>> import network as n
>>> con1 = n.Convolute(3, (4, 4), (4, 4), 0)
>>> type(con1)

>>> n.Convolute

>>> type(con1) == n.Convolute
False
>>> isinstance(con1, n.Convolute)
False
Поскольку выходные данные type(con1) и n.Convolute кажутся идентичными, я ожидал, что isinstance() и type(con1) == n.Convolute вернет True, но они вернут False. Честно говоря, я в замешательстве, пожалуйста, помогите.

--РЕДАКТИРОВАТЬ--

Код: Выделить всё

type(con1).__name__ == n.Convolute.__name__
возвращает True, но я до сих пор не знаю, почему ничего не работает

Проблема также внутри файла, из которого я импортирую, я просто Я также столкнулся с той же проблемой в самом файле, а не только при его импорте. Вот код внутри программы:

Код: Выделить всё

class Network(object):

#params for class are layers described by class e.g. ConvolutionalNetwork([Input([...]), Convolute([...]), Flatten(), Dense([...]), (Dense[...]])
#__init__ and setflattensize functions initilize network structures
def __init__(self, layers):
self.layers = layers
self.channels = [layers[0].channels]
self.shapes = [layers[0].shape]
for layer, index in zip(layers, range(len(layers))):
if isinstance(layer, Flatten):
self.setflattensize(layer, index)
if isinstance(layer, Dense):
layer.weights = np.random.randn(self.layers[index-1].size, layer.size)
#get list of channels and shapes/sizes that correspond with each layer
if index>0:
if self.channels[-1]*layer.channels == 0:
self.channels.append(1)
else:
self.channels.append(self.channels[-1]*layer.channels)
if isinstance(layer, Convolute):
self.shapes.append(((self.shapes[-1][0]-layer.filter_shape[0]+1)/layer.pool_shape[0], (self.shapes[-1][1]-layer.filter_shape[1]+1)/layer.pool_shape[1]))
else:
self.shapes.append(layer.size)
if isinstance(layer, Convolute): возвращает False вместо True. Эта проблема более подробно описана ранее.

исполняемый код, демонстрирующий проблему: https://github.com/Ecart33/MachineLearning/blob/master/ нейронная сеть/network_debug.py

Подробнее здесь: https://stackoverflow.com/questions/562 ... e-of-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как отправить сигнал "ctrl+c" / sigint, чтобы Gradle javaexec type type type jvm?
    Anonymous » » в форуме JAVA
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Отладчик vsc python и pylance не распознают установленный пакет
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Python "Isinstance" с именем класса вместо типа
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Python "Isinstance" с именем класса вместо типа
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Запросы геокодирования Geopy неправильно распознают ошибки
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»