草庐IT

CNN+LSTM:智能合约漏洞检测

今天记录一下最近将深度学习方法用于智能合约漏洞检测的第一次实验,顺便给研究这方向的同行们提供一点借鉴意义。这个方法跟NLP有点相似,但又不太一样,因为操作码序列虽然具备一定语义信息,但偏向底层机器语言,所以刚开始我并不确定最终能不能达到很好的训练效果。这个实验的完整过程如下:首先通过插桩在本地链上同步当前以太坊的部分区块交易数据,借此拿到每笔交易的操作码序列、合约地址等等原始数据;接着通过word2vec或one-hot编码将每个操作码转成词向量;最后搭建CNN+LSTM的深度学习模型完成多分类训练。0.导包fromkeras.modelsimportSequentialfromkeras.l

模型训练时使用的 model.train() 和模型测试时使用的 model.eval()

在PyTorch中,模型训练时使用的 model.train() 和模型测试时使用的 model.eval() 分别用于开启和关闭模型的训练模式和测试模式。model.train() 会将模型设置为训练模式,启用Dropout和BatchNormalization等训练时特有的操作。这种模式适用于训练阶段,由于Dropout在每次迭代时随机关闭神经元,因此可以减少神经元之间的相互依赖,使得模型泛化能力更强。另外,BatchNormalization可以将输入数据规范化,减弱各个特征之间的相互影响,加快模型收敛速度。model.eval() 会将模型设置为测试模式,关闭Dropout和Batch

python - numpy:如何在 np 数组中选择特定索引以进行 k 折交叉验证?

我有一个矩阵形式的训练数据集,尺寸为5000x3027(CIFAR-10数据集)。在numpy中使用array_split,我将它分成5个不同的部分,我只想选择其中一个部分作为交叉验证折叠。但是,当我使用类似的东西时,我的问题就来了XTrain[[Indexes]]其中indexes是一个数组,如[0,1,2,3],因为这样做会给我一个尺寸为4x1000x3027的3D张量,而不是矩阵。如何将“4x1000”折叠成4000行,以获得4000x3027的矩阵?forfoldinrange(len(X_train_folds)):indexes=np.delete(np.arange(le

python - 分布式 tensorflow : ValueError “When: When using replicas, all Variables must have their device set” set: name: "Variable"

我正在尝试在独立模式的tensorflow上编写分布式变分自动编码器。我的集群包括3台机器,分别命名为m1、m2和m3。我正在尝试在m1上运行1个ps服务器,在m2和m3上运行2个工作服务器。(示例培训师计划在distributedtensorflowdocumentation中)在m3上,我收到以下错误消息:Traceback(mostrecentcalllast):File"/home/yama/mfs/ZhuSuan/examples/vae.py",line241,insave_model_secs=600)File"/mfs/yama/tensorflow/local/lib

python - 使用 tensorflow 进行线性回归

我试图理解线性回归……这是我试图理解的脚本:'''AlinearregressionlearningalgorithmexampleusingTensorFlowlibrary.Author:AymericDamienProject:https://github.com/aymericdamien/TensorFlow-Examples/'''from__future__importprint_functionimporttensorflowastffromnumpyimport*importnumpyimportmatplotlib.pyplotaspltrng=numpy.rand

python - 使用 Pandas 为 Scikit-Learn 准备 CSV 文件数据?

我有一个没有标题的csv文件,我正在使用pandas将其导入python。最后一列是目标类,其余列是图像的像素值。我如何继续使用pandas(80/20)将此数据集拆分为训练集和测试集?此外,一旦完成,我将如何拆分这些集合中的每一个,以便我可以定义x(除最后一列之外的所有列)和y(最后一列)?我使用以下方法导入了我的文件:dataset=pd.read_csv('example.csv',header=None,sep=',')谢谢 最佳答案 我建议使用sklearn的train_test_splitfromsklearn.mode

python - 通过导出器和 tf.train.write_graph() 保存模型之间的 tensorflow 区别?

保存模型有什么区别使用tensorflowserving中指定的导出器:例如:fromtensorflow.contrib.session_bundleimportexporter#fromtensorflow_serving.session_bundleimportexportersaver=tf.train.Saver(sharded=True)model_exporter=exporter.Exporter(saver)model_exporter.init(sess.graph.as_graph_def(),named_graph_signatures={'inputs':ex

python - 拟合多项式的 Keras 模型

我从四次多项式生成了一些数据,并想在Keras中创建一个回归模型来拟合这个多项式。问题是拟合后的预测似乎基本上是线性的。由于这是我第一次使用神经网络,我认为我犯了一个非常微不足道和愚蠢的错误。这是我的代码:model=Sequential()model.add(Dense(units=200,input_dim=1))model.add(Activation('relu'))model.add(Dense(units=45))model.add(Activation('relu'))model.add(Dense(units=1))model.compile(loss='mean_sq

python - 神经网络 : estimating sine wave frequency

为了学习KerasLSTM和RNN,我想创建一个简单的问题来解决:给定一个正弦波,我们可以预测它的频率吗?我不希望一个简单的神经网络能够预测频率,因为时间的概念在这里很重要。然而,即使使用LSTM,我也无法学习频率;我能够学习一个平凡的零作为估计频率(即使对于火车样本)。这是创建训练集的代码。importnumpyasnpimportmatplotlib.pyplotaspltdefcreate_sine(frequency):returnnp.sin(frequency*np.linspace(0,2*np.pi,2000))train_x=np.array([create_sine

python - Scikit 学习错误消息 'Precision and F-score are ill-defined and being set to 0.0 in labels'

这个问题在这里已经有了答案:UndefinedMetricWarning:F-scoreisill-definedandbeingsetto0.0inlabelswithnopredictedsamples(7个答案)ClassificationReport-PrecisionandF-scoreareill-defined(2个答案)关闭去年。我正在研究二元分类模型,分类器是朴素贝叶斯。我有一个几乎平衡的数据集,但是我在预测时收到以下错误消息:UndefinedMetricWarning:PrecisionandF-scoreareill-definedandbeingsetto0.