- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
学习使用bert-base-cased和分类模型......模型的代码如下:
def mao_func(input_ids, masks, labels):
return {'input_ids':input_ids, 'attention_mask':masks}, labels
dataset = dataset.map(mao_func)
BATCH_SIZE = 32
dataset = dataset.shuffle(100000).batch(BATCH_SIZE)
split = .8
ds_len = len(list(dataset))
train = dataset.take(round(ds_len * split))
val = dataset.skip(round(ds_len * split))
from transformers import TFAutoModel
bert = TFAutoModel.from_pretrained('bert-base-cased')
模型:“tf_bert_model”
bert (TFBertMainLayer) 多个 108310272
============================================= ==================总参数:108,310,272可训练参数:108,310,272不可训练的参数:0
然后是神经网络构建:
input_ids = tf.keras.layers.Input(shape=(50,), name='input_ids', dtype='int32')
mask = tf.keras.layers.Input(shape=(50,), name='attention_mask', dtype='int32')
embeddings = bert(input_ids, attention_mask=mask)[0]
X = tf.keras.layers.GlobalMaxPool1D()(embeddings)
X = tf.keras.layers.BatchNormalization()(X)
X = tf.keras.layers.Dense(128, activation='relu')(X)
X = tf.keras.layers.Dropout(0.1)(X)
X = tf.keras.layers.Dense(32, activation='relu')(X)
y = tf.keras.layers.Dense(3, activation='softmax',name='outputs')(X)
model = tf.keras.Model(inputs=[input_ids, mask], outputs=y)
model.layers[2].trainable = False
model.summary 是:
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_ids (InputLayer) [(None, 50)] 0 []
attention_mask (InputLayer) [(None, 50)] 0 []
tf_bert_model (TFBertModel) TFBaseModelOutputWi 108310272 ['input_ids[0][0]',
thPoolingAndCrossAt 'attention_mask[0][0]']
tentions(last_hidde
n_state=(None, 50,
768),
pooler_output=(Non
e, 768),
past_key_values=No
ne, hidden_states=N
one, attentions=Non
e, cross_attentions
=None)
global_max_pooling1d (GlobalMa (None, 768) 0 ['tf_bert_model[0][0]']
xPooling1D)
batch_normalization (BatchNorm (None, 768) 3072 ['global_max_pooling1d[0][0]']
alization)
dense (Dense) (None, 128) 98432 ['batch_normalization[0][0]']
dropout_37 (Dropout) (None, 128) 0 ['dense[0][0]']
dense_1 (Dense) (None, 32) 4128 ['dropout_37[0][0]']
outputs (Dense) (None, 3) 99 ['dense_1[0][0]']
==================================================================================================
Total params: 108,416,003
Trainable params: 104,195
Non-trainable params: 108,311,808
__________________________________________________________________________________________________
最后是模型拟合
optimizer = tf.keras.optimizers.Adam(0.01)
loss = tf.keras.losses.CategoricalCrossentropy()
acc = tf.keras.metrics.CategoricalAccuracy('accuracy')
model.compile(optimizer,loss=loss, metrics=[acc])
history = model.fit(
train,
validation_data = val,
epochs=140
)
第 7 行执行错误 -> model.fit(...):
ValueError: Input 0 of layer "model" is incompatible with the layer: expected shape=(None, 50), found shape=(None, 1, 512)
谁能帮我解决我做错了什么以及为什么...谢谢:)
更新:这是代码为 https://github.com/CharlieArreola/OnlinePosts 的 git
最佳答案
看来,您的训练数据形状与输入层的预期输入形状不匹配。您可以使用 train.shape()
您输入层 Input_ids = tf.keras.layers.Input(shape=(50,), name='input_ids', dtype='int32')
期望训练数据为 50 列,但如果我们查看您的错误,您很可能有 512。因此,要解决此问题,您只需更改输入形状即可。
Input_ids = tf.keras.layers.Input(shape=(512,), name='input_ids', dtype='int32')
如果您在数据集中拆分 x 和 y,您可以通过以下方式使其更加灵活:
Input_ids = tf.keras.layers.Input(shape=(train_x.shape[0],), name='input_ids', dtype='int32')
另外不要忘记,您必须对所有输入层进行此更改!
关于tensorflow - ValueError : Input 0 of layer "model" is incompatible with the layer: expected shape=(None, 50), found shape=(None, 1, 512),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70763767/
我有一个自定义类 Custom . public class Custom { private Long id; List ids; // getters and setters } 现在
我有一个 Tree 对象,其中包含 Tree 对象的子对象 (HashMap) 等等。 我需要通过 numericPosition 变量过滤对象。 例如: Tree mapTreeRoot = new
我是编码的新手,在尝试了多种解决方案后,我仍然无法弄清楚为什么我的做法是错误的。这是我的完整代码: public class Student { private String name; pr
我在使用泛型时遇到问题。我不知道如何将 OnCallbackWrapper 传递给 CallbackWrapper 过程。我在以下示例中收到“不兼容类型”错误: unit uTest; interfa
我想实现yin-yang puzzle在 haskell 。这是我的尝试(不成功): -- The data type in use is recursive, so we must have a n
这个问题已经有答案了: What does "Incompatible types: void cannot be converted to ..." mean? (1 个回答) 已关闭2 年前。 我
在以下情况下,我无法理解 Java 泛型的行为。 拥有一些参数化接口(interface),IFace ,以及某个类上的方法,该方法返回扩展此接口(interface)的类,> Class getCl
我成功地将我的日期从 JDateChooser 获取到带有以下行的字符串中: String d1 = ((JTextField)jDateChooser1.getDateEditor().getUi
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我正在编写这段使用大数字的代码: import java.math.*; import java.util.*; import java.lang.*; public class main {
我首先使用 JXL 修改 POI 创建的一个 xls 文件。之后我将尝试使用 POI 读取该文件。在 POIFSFileSystem 创建的那一刻 poFileSystem = new POIFSF
这里是完全的 Java 菜鸟。学校刚刚开学,我正在参加 APCS。我们的老师向我们展示了这个名为 Scanner 的很酷的类(class),但他还没有教过我们。我觉得这很酷,所以我决定进一步研究它。在
我见过很多情况,其中声明了一个字节,但来自类似方法的值intToByte 或 StringToByte 被转换为字节,因为程序员提供了一个十六进制-值,一个整数-或字符串值。 我试图将实际的字节值分配
在这个类中,我想返回整个数组列表,而不是作为单个元素。但是,我在编译时收到错误“不兼容类型”。我在这里做错了什么?感谢您的帮助!! import java.util.ArrayList; public
我想设置一个新的 mysql 数据库从属数据库,运行比主数据库 => 5.0.75 更新版本的 mysql => 5.1.41,据我所知,这通常应该没有问题。然而,事实证明设置复制失败了,因为我在 5
我相信conftest缺少正确的标志,但我无法通过查看mkmf.log的内容来找出问题,这些内容包含在下面。 任何想法将不胜感激! 我正在编译用于 OpenWRT 路由器 (mips) 使用 ruby
我正在尝试实现一个呼吸优先的搜索,用于搜索罗马尼亚城市的人工智能程序。 但是,我在这方面遇到了很多麻烦,最新的错误是 searches.java:153: error: incompatible ty
我有编译错误: Error: incompatible types: Object cannot be converted to String. 在行 String buf = it.next();
private byte[] decode_text(byte[] image) { int length = 0; int offset = 32; for(int i=0;
这个问题在这里已经有了答案: Why won't this generic java code compile? (4 个答案) 关闭 9 年前。 给定这个简单的类: import java
我是一名优秀的程序员,十分优秀!