我正在玩路透社示例数据集,它运行正常(我的模型已经过培训).我读到了如何保存模型,所以我可以稍后加载它再次使用.但是如何使用此保存的模型来预测新文本?我用models.predict()吗?
我是否必须以特殊方式准备此文本?
我试过了
import keras.preprocessing.text
text = np.array(['this is just some random, stupid text'])
print(text.shape)
tk = keras.preprocessing.text.Tokenizer(
nb_words=2000,
filters=keras.preprocessing.text.base_filter(),
lower=True,
split=" ")
tk.fit_on_texts(text)
pred = tk.texts_to_sequences(text)
print(pred)
model.predict(pred)
Run Code Online (Sandbox Code Playgroud)
但我总是得到
(1L,)
[[2, 4, 1, 6, 5, 7, 3]]
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-83-42d744d811fb> in <module>()
7 print(pred)
8
----> 9 model.predict(pred)
C:\Users\bkey\Anaconda2\lib\site-packages\keras\models.pyc in predict(self, x, batch_size, verbose)
457 if self.model is None:
458 self.build()
--> 459 return self.model.predict(x, batch_size=batch_size, verbose=verbose)
460
461 def predict_on_batch(self, x): …Run Code Online (Sandbox Code Playgroud) 我开始学习Keras,我认为它是Tensorflow和Theano之上的一层.但是,我只能访问AMD GPU,例如AMD R9 280X.
如何设置我的Python环境,以便通过Keras/Tensorflow支持OpenCL来使用我的AMD GPU?
我在OSX上运行.
如果我有这样的表格:
df = pd.DataFrame({
'hID': [101, 102, 103, 101, 102, 104, 105, 101],
'dID': [10, 11, 12, 10, 11, 10, 12, 10],
'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'],
'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C']
})
Run Code Online (Sandbox Code Playgroud)
我可以count(distinct hID)在Qlik中为独特的hID计算出5的计数.我如何使用pandas数据框在python中做到这一点?或者也许是一个numpy阵列?同样,如果要这样做,count(hID)我会在Qlik得到8分.在熊猫中做同样的事情是什么?
我有一个当前的mysql用户,他拥有SELECT数据库中所有表的权限example.如何赋予该用户添加新表的权限,并将记录更改/添加到它创建的表中?
背景:
我有一个基于tf.estimator.DNNClassifier的简单分类器,它通过intent标签获取文本和输出概率.我能够训练将模型输出到可服务的以及使用tensorflow服务服务于服务.问题是这个可服务性太大(大约1GB),因此我想尝试一些张量流图变换来尝试减少所服务文件的大小.
问题:
我理解如何saved_model.pb使用和使用freeze_model.py来创建一个.pb可用于调用转换的新文件.这些转换的结果(.pb文件也是如此)不可用,不能与tensorflow服务一起使用.
开发者如何来自:
saved model -> graph transforms -> back to a servable
Run Code Online (Sandbox Code Playgroud)
有文档表明这肯定是可能的,但从文档到关于如何做到这一点并不直观.
我试过的:
import tensorflow as tf
from tensorflow.saved_model import simple_save
from tensorflow.saved_model import signature_constants
from tensorflow.saved_model import tag_constants
from tensorflow.tools.graph_transforms import TransformGraph
with tf.Session(graph=tf.Graph()) as sess_meta:
meta_graph_def = tf.saved_model.loader.load(
sess_meta,
[tag_constants.SERVING],
"/model/path")
graph_def = meta_graph_def.graph_def
other_graph_def = TransformGraph(
graph_def,
["Placeholder"],
["dnn/head/predictions/probabilities"],
["quantize_weights"])
with tf.Graph().as_default(): …Run Code Online (Sandbox Code Playgroud) 我一直关注这篇文章,以便在我的LSTM模型上实现关注层.
代码attention layer:
INPUT_DIM = 2
TIME_STEPS = 20
SINGLE_ATTENTION_VECTOR = False
APPLY_ATTENTION_BEFORE_LSTM = False
def attention_3d_block(inputs):
input_dim = int(inputs.shape[2])
a = Permute((2, 1))(inputs)
a = Reshape((input_dim, TIME_STEPS))(a)
a = Dense(TIME_STEPS, activation='softmax')(a)
if SINGLE_ATTENTION_VECTOR:
a = Lambda(lambda x: K.mean(x, axis=1), name='dim_reduction')(a)
a = RepeatVector(input_dim)(a)
a_probs = Permute((2, 1), name='attention_vec')(a)
output_attention_mul = merge(
[inputs, a_probs],
name='attention_mul',
mode='mul'
)
return output_attention_mul
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
文件"main_copy.py",第244行,在model = create_model(X_vocab_len,X_max_len,y_vocab_len,y_max_len,HIDDEN_DIM,LAYER_NUM)文件"main_copy.py",第189行,在create_model中attention_mul = attention_3d_block(temp)文件"main_copy.py" ",第124行,注意事项_3d_block a = Permute((2,1))(输入)文件"/root/.virtualenvs/keras_tf/lib/python3.5/site-packages/keras/engine/topology.py",行597,在调用 output_mask = self.compute_mask(inputs,previous_mask)文件"/root/.virtualenvs/keras_tf/lib/python3.5/site-packages/keras/engine/topology.py",第744行,在compute_mask str中( …
这是我的表:
pid high medium low
1 10 8 6
2 20 16 12
3 10 6 4
Run Code Online (Sandbox Code Playgroud)
我想将此数据存储在Hive中的另一个表中,格式如下:
pid priority value
1 high 10
1 medium 8
1 low 6
2 high 20
2 medium 16
2 low 12
3 high 10
3 medium 6
3 low 4
Run Code Online (Sandbox Code Playgroud) 我有一个Hive表,如
id | value
-------------
A 1
A 2
B 3
A 4
B 5
Run Code Online (Sandbox Code Playgroud)
从本质上讲,我想模仿Python defaultdict(list)并创建一个带有id键和value值的地图.
查询:
select COLLECT_TO_A_MAP(id, value)
from table
Run Code Online (Sandbox Code Playgroud)
输出:
{A:[1,2,4], B:[3,5]}
Run Code Online (Sandbox Code Playgroud)
我尝试使用klout, CollectUDAF()但似乎这不会将值附加到数组,它只会更新它们.有任何想法吗?
编辑: 这是一个更详细的描述,所以我可以避免引用我在Hive文档中尝试函数的答案.假设我有一张桌子
num |id |value
____________________
1 A 1
1 A 2
1 B 3
2 A 4
2 B 5
2 B 6
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是提供此输出的UDAF
num |new_map
________________________
1 {A:[1,2], B:[3]}
2 {A:[4], B:[5,6]}
Run Code Online (Sandbox Code Playgroud)
对此查询
select num
,COLLECT_TO_A_MAP(id, value) as new_map
from table
group by …Run Code Online (Sandbox Code Playgroud) 我有一个GenericUDF(见下面的代码)在Hadoop-1和Hive-0.12上正常运行.但是当使用Hive-0.13 + Hadoop-2测试相同的GenericUDF时,我收到以下错误.
顶点失败,vertexName = Map 12,vertexId = vertex_1409698731658_42202_1_00,diagnostics = [顶点输入:ccv初始化程序失败.,org.apache.hive.com.esotericsoftware.kry o.KryoException:无法找到类:com.xxx.xxx.Id1
这是我的UDF的代码.
package com.xxx.xxx;
import org.apache.hadoop.hive.*;
public class Id1 extends GenericUDF {
private MapredContext context;
private long sequenceNum = 0;
private static final int padLength = 10;
StringBuilder sb = null;
public ObjectInspector initialize(ObjectInspector[] arguments)
throws UDFArgumentException {
sequenceNum = 0;
sb = new StringBuilder();
return PrimitiveObjectInspectorFactory.javaStringObjectInspector;
}
public Object evaluate(DeferredObject[] arguments) throws HiveException {
int sbLength = sb.toString().length();
if (sbLength > 0)
sb.replace(0, sbLength, "");
String taskId = …Run Code Online (Sandbox Code Playgroud) 谁能帮助我在此visjs网络中动态添加边缘?实际上,我正在尝试使用拖放将节点添加到画布,但是当我单击节点并将边缘动态添加到画布上存在的另一个节点时,我需要添加边缘的帮助。