【发布时间】:2021-02-09 10:46:33
【问题描述】:
import tensorflow as tf
import tensorflow.keras.layers as nn
import numpy as np
class Base(tf.keras.Model):
def __init__(self):
super(Base, self).__init__()
self.user_emb = nn.Embedding(20000, 128, input_length=1)
self.item_emb = nn.Embedding(10000, 128, input_length=1)
self.test_dense = nn.Dense(80, activation=None)
self.final_dense = nn.Dense(1)
def call(self, inputs, **kwargs):
user, item = inputs
user_emb = self.user_emb(user)
item_emb = self.item_emb(item)
join_emb = tf.concat([user_emb, item_emb], -1)
logit = self.test_dense(join_emb)
logit = tf.squeeze(self.final_dense(logit))
output = tf.nn.sigmoid(logit)
return output
# Main
if __name__ == '__main__':
model = Base()
model.compile(loss='binary_crossentropy', optimizer='adam',
metrics=[])
a = np.random.randint(1,20000,size=(10000))
b = np.random.randint(1, 10000, size=(10000))
y = np.random.randint(0, 2, size=(10000))
X = [a, b]
model.fit(X, y, epochs=1, batch_size=32)
当我运行上面的代码时,我得到了
TypeError:“NoneType”类型的对象没有 len()。
我使用 TensorFlow 2.0.0,python 3.6
【问题讨论】:
标签: python tensorflow keras