- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个输出 17 个维度的解码器,其中不同部分是标签和数字。因此,对于标签,我使用了 one-hot 编码并使用“softmax”激活,对于数字,我使用了“sigmoid”激活函数。
这是解码器:
latent_inputs = Input(shape=(latent_dim,), name='z_sampling')
x = Dense(intermediate_dim, activation='relu')(latent_inputs)
x1 = Dense(intermediate_dim, activation='relu')(x)
x2 = Dense(intermediate_dim, activation='relu')(x1)
output1 = Dense(Num_classes, activation='softmax')(x2)
output2 = Dense(3, activation='sigmoid')(x2)
output3 = Dense(Num_classes, activation='softmax')(x2)
output4 = Dense(2, activation='sigmoid')(x2)
outputs = [output1, output2, output3, output4]
# instantiate decoder model
decoder = Model(latent_inputs, outputs, name='decoder')
并且,这是我定义损失函数的方式:
reconstruction_loss = categorical_crossentropy(inputs[0:Num_classes],outputs[0:Num_classes] )
+ binary_crossentropy(inputs[Num_classes:Num_classes+3],outputs[Num_classes:Num_classes+3])\
+categorical_crossentropy(inputs[Num_classes+3:2*Num_classes+3],outputs[Num_classes+3:2*Num_classes+3])\
+ binary_crossentropy(inputs[2*Num_classes+3:2*Num_classes+5],outputs[2*Num_classes+3:2*Num_classes+5])
但是,我在主题中发现了错误。你能帮忙吗?
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-19-4de2050a20eb> in <module>
17 reconstruction_loss = mse(inputs, outputs)
18 else:
---> 19 reconstruction_loss = categorical_crossentropy(inputs[0:Num_classes],outputs[0:Num_classes] )
20 + binary_crossentropy(inputs[Num_classes:Num_classes+3],outputs[Num_classes:Num_classes+3])\
21 + categorical_crossentropy(inputs[Num_classes+3:2*Num_classes+3],outputs[Num_classes+3:2*Num_classes+3])\
C:\ProgramData\Anaconda3\lib\site-packages\keras\losses.py in categorical_crossentropy(y_true, y_pred, from_logits, label_smoothing)
678
679 def categorical_crossentropy(y_true, y_pred, from_logits=False, label_smoothing=0):
--> 680 y_pred = K.constant(y_pred) if not K.is_tensor(y_pred) else y_pred
681 y_true = K.cast(y_true, y_pred.dtype)
682
C:\ProgramData\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py in constant(value, dtype, shape, name)
647 with tf_ops.init_scope():
648 return tf_keras_backend.constant(
--> 649 value, dtype=dtype, shape=shape, name=name)
650
651
C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\keras\backend.py in constant(value, dtype, shape, name)
935 dtype = floatx()
936
--> 937 return constant_op.constant(value, dtype=dtype, shape=shape, name=name)
938
939
C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\framework\constant_op.py in constant(value, dtype, shape, name)
256 """
257 return _constant_impl(value, dtype, shape, name, verify_shape=False,
--> 258 allow_broadcast=True)
259
260
C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\framework\constant_op.py in _constant_impl(value, dtype, shape, name, verify_shape, allow_broadcast)
264 ctx = context.context()
265 if ctx.executing_eagerly():
--> 266 t = convert_to_eager_tensor(value, ctx, dtype)
267 if shape is None:
268 return t
C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\framework\constant_op.py in convert_to_eager_tensor(value, ctx, dtype)
94 dtype = dtypes.as_dtype(dtype).as_datatype_enum
95 ctx.ensure_initialized()
---> 96 return ops.EagerTensor(value, ctx.device_name, dtype)
97
98
ValueError: TypeError: len is not well defined for symbolic Tensors. (decoder/dense_7/Softmax:0) Please call `x.shape` rather than `len(x)` for shape information.
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\framework\ops.py", line 733, in __len__
"shape information.".format(self.name))
TypeError: len is not well defined for symbolic Tensors. (decoder/dense_7/Softmax:0) Please call `x.shape` rather than `len(x)` for shape information.
最佳答案
为了解决这个问题,我为编码器定义了四个输入,如下所示:
input1 = Input(shape=(Num_classes,), name='encoder_input1')
input2 = Input(shape=(3,), name='encoder_input2')
input3 = Input(shape=(Num_classes,), name='encoder_input3')
input4 = Input(shape=(2,), name='encoder_input4')
added = keras.layers.concatenate([input1, input2, input3, input4], axis = -1)
x = Dense(128, activation='relu')(added)
.
.
.
我定义了具有四个输出的解码器:
.
.
.
x3 = Dense(128, activation='relu')(x2)
out1 = Dense(Num_classes, activation='softmax',name='label1')(x3)
out2 = Dense(3, activation='sigmoid',name='dim1')(x3)
out3 = Dense(Num_classes, activation='softmax',name='label2')(x3)
out4 = Dense(2, activation='sigmoid',name='dim2')(x3)
损失函数如下:
reconstruction_loss = categorical_crossentropy(input1,out1) +\
binary_crossentropy(input2,out2)+\
categorical_crossentropy(input3,out3) +\
binary_crossentropy(input4,out4)
关于python - len 没有很好地定义符号。请调用 `x.shape` 而不是 `len(x)` 获取形状信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59057775/
给定 data Person = Person { _name :: String } makeClassy ''Person 它创建了一个 name :: Lens' Person String 我
Python内置的len()函数的成本是多少?(列表/元组/字符串/词典)
这个问题在这里已经有了答案: 9年前关闭。 Possible Duplicate: lenses, fclabels, data-accessor - which library for struct
Python 哪个性能更好: 1) for i in range(len(a[:-1])): foo() 或 2) for i in range(len(a)-1): foo() 更新
我正在学习 Python 并正在学习谷歌代码类(class)。在 list2.py 示例中,他们要求我们编写一个函数: Given two lists sorted in increasing ord
我最近开始使用 Python 进行数据分析,由于我不是从头开始学习 Python,所以我觉得我错过了一些细微差别。 我注意到的一件事是,在我的一份报告中,我从 CSV 文件中导入了一个数据集,将其作为
为什么a[len(a):] = [x]等同于a.append(x),但是a[len(a) ] = [x] 给出超出范围的错误? 最佳答案 根据 the documentation (强调我的): If
当我运行以下宏时: Sub try() Dim num As Integer num = 123 MsgBox Len(num) MsgBox VBA.Len(num)
我目前正在获取 Python 3.x 中以 0 的随机长度结尾的随机数列表。例如,我得到以下一组随机数字字符串: String 1 = 203502000000 String 2 = 30293300
我正在学习 numba 并遇到了这种我不理解的“奇怪”行为。我尝试使用以下代码(在 iPython 中,用于计时): import numpy as np import numba as nb @nb
在Go , 要检查字符串是否为空,可以使用: len(str) == 0 或 len(str) < 1 或 str == "" 基本上就是选择运营商的一米== , < , != ,但就性能而言希望选项
我正在尝试创建一个函数 hpure通过重复相同的元素直到达到所需的长度来生成 hvect。每个元素可能有不同的类型。例如:如果参数是 show 每个元素将是 show 函数的特化。 hpure sho
我正在实现一个图形操作脚本,但我对以下错误感到困惑: Traceback (most recent call last): File ".....py", line 12, in pri
通常为了节省一些时间,我希望我们在本地函数中使用 n = len(s)。我很好奇哪个调用更快或者它们相同? while i < len(s): # do something 对比 while i
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
大家好! 我从这个网站找到了这段很棒的代码: var points = [30,100]; document.getElementById("demo").innerHTML = myArrayMax
我有一个输出 17 个维度的解码器,其中不同部分是标签和数字。因此,对于标签,我使用了 one-hot 编码并使用“softmax”激活,对于数字,我使用了“sigmoid”激活函数。 这是解码器:
我在下面得到了这段代码,但即使调试它,我也不明白为什么给出 7 而不是 6。 更准确地说,当我调试每个返回时都会给我预期的结果: 第一个函数调用:ipdb> --Return-- ['a'] 第二个函
上述分配可能会出现什么样的问题?如果我们分配实际数据类型的大小而不是该类型指针的大小? 对于 sizeof (char*) > sizeof (char) 的字符来说,这会是一个问题吗?其他数据类型和
我知道 somelist[len(somelist)] 无法访问定义列表之外的索引 - 这是有道理的。 但是为什么 Python 允许你做 somelist[len(somelist):]? 我什至读
我是一名优秀的程序员,十分优秀!