我已经实现了多层感知器来预测输入向量的罪过.向量由随机选择的四个-1,0,1组成,并设置为1.网络应预测向量内容的总和. eg输入= output = sin(0+1+(-1)+0+1) 我遇到的问题是,网络永远不会预测负值,许多向量的罪值为负.它可以完美地预测所有正或零输出.我认为更新权重的问题是一个问题,在每个时期之后都会更新.有没有人以前遇到过NN的问题?任何帮助都很棒! 注意:该网络在1个隐藏层中有5个输入,6个被限制的单元. 解决方案 自从我研究多层感知以来已经很长时间了. 我会将您的问题域重新为[0,1]域而不是[-1,1].如果您查看Logistic函数图: 它在[0,1]之间生成值.我不期望它会产生负面结果.我可能错了,坚韧. 编辑: 您实际上可以将逻辑函数扩展到问题域.使用概括性逻辑曲线将A和K参数设置为域的边界. 另一个选项是双曲线切线,它从[-1,+1]从没有常数设置. 其他解决方案 有许多不同种类的激活功能,其中
以下是关于 neural-network 的编程技术问答
tl; dr是动态选择张量的某些条目的最有效方法. 我正在尝试 enmart 在tensorflow中的语法GCN .基本上,我需要为每个标签具有不同的权重矩阵(让这个问题忽略偏见),然后在每个运行使用的相关条目时选择稀疏矩阵(对于每个条目,最多都有一个标签在一个方向上,大部分没有边缘,所以甚至没有). 更具体地说,当我具有标记边缘的稀疏矩阵(零一个)时,在掩模中使用它,稀疏的密度张量乘法或可能只是使用正常乘法(我猜不是后者,但是为了简单起见,在示例中使用它) 示例: units = 6 # output size x = ops.convert_to_tensor(inputs[0], dtype=self.dtype) labeled_edges = ops.convert_to_tensor(inputs[1], dtype=self.dtype) edges_shape = labeled_edges.get_shape(
我正在尝试建立一个将乘以2个数字的神经网络.为此,我得到了Scikit-Learn的帮助.我要使用一个带有2个隐藏层的神经网络(5,3),并作为我的激活功能. 我已经定义了我的MLPRegressor如下: X = data.drop('Product', axis=1) y = data['Product'] X_train, X_test, y_train, y_test = train_test_split(X, y) scaler = StandardScaler() scaler.fit(X_train) X_train = scaler.transform(X_train) X_test = scaler.transform(X_test) mlp = MLPRegressor(hidden_layer_sizes=(5, 3), activation="relu", learning_rate="adaptive", max_iter=500000, verb
对于我的研究生研究,我正在创建一个训练图像的神经网络.我的工作要复杂得多,而不是像许多示例一样,将RGB值的网格,下采样和将它们发送到网络的输入中.实际上,我使用了100多种独立训练的神经网络来检测特征,例如线条,阴影图案等.更像人眼,到目前为止它的效果非常好!问题是我有很多培训数据.我显示了100多个汽车的外观示例.然后100个人的样子.然后,超过100只狗的外观等等.这是很多训练数据!目前,我大约一周的时间跑步来训练该网络.这有点杀死我的进度,因为我需要调整和重新训练. 我正在使用 neuroph ,作为低级别的神经网络API.我正在运行一台双四分之一机器(16个带有超线程的内核),所以这应该很快.我的处理器百分比仅为5%.神经表现有任何技巧吗?还是Java性能一般?建议?我是一名认知心理博士生,而且作为程序员很不错,但对性能编程并不了解. 解决方案 是的,几个月前,我走了那条路.也是大学项目.第一个问题是神经.它的致命慢. Neuroph非常了解主要的建筑和性能问题,
我正在尝试建立一个简单的前馈神经网络的Java端口. 这显然涉及许多数字计算,因此我试图尽可能优化我的中央循环.结果应在float数据类型的范围内正确. 我当前的代码如下(删除了错误处理和初始化): /** * Simple implementation of a feedforward neural network. The network supports * including a bias neuron with a constant output of 1.0 and weighted synapses * to hidden and output layers. * * @author Martin Wiboe */ public class FeedForwardNetwork { private final int outputNeurons; // No of neurons in output layer private final
我整天都在分析一个应用程序,并且在优化了几个代码后,我将其列入了待办事项列表.这是神经网络的激活功能,该功能被称为超过1亿次.根据Dottrace的说法,约为整体功能时间的60%. 您将如何优化? public static float Sigmoid(double value) { return (float) (1.0 / (1.0 + Math.Pow(Math.E, -value))); } 解决方案 尝试: public static float Sigmoid(double value) { return 1.0f / (1.0f + (float) Math.Exp(-value)); } 编辑:我做了一个快速的基准测试.在我的计算机上,上述代码比您的方法快43%,并且该数学等效的代码更快的速度(比原始代码快46%): public static float Sigmoid(double value) { float
train_image_gen = image_gen.flow_from_directory('/Users/harshpanwar/Desktop/Folder/train', target_size=image_shape[:2], batch_size=batch_size, class_mode='binary') 在上面的代码段中,class_mode ='binary'表示什么.我认为这是针对图像类别的数量.我正在使用此代码来训练Keras中的图像识别分类器,以对狗和猫等2种不同类别进行分类.因此,如果class_mode ='二进制 解决方案 class_mode:"分类","二进制",
我必须执行一个试图扫描车辆形状并检测到哪种类型的车辆的项目,扫描将使用称为"车辆扫描仪"的传感器执行,它们只是50束光束图片中显示的受体和发射: 我从传感器中获得了每个梁的原始壁板(块或解阻),并且通过连续扫描,我们可以创建一个可能非常低的车辆RES图像. 我的问题是我可以用什么算法/技术来检测和识别车辆的形状,我们要计算车轮,如果可以的话,请尝试识别该形状是汽车还是卡车还是卡车或拾音器等.,至少我们要计算车轮. 我正在考虑培训神经网络,但也许可以使用这种模式检测的一种更简单的方法,而我却不知道. 任何其他建议/建议都将不胜感激 解决方案 标准的神经网络将是一个合理的选择,并且可以正常工作,但是卷积神经网络(CNN)可能是最佳选择(有关快速说明). CNN非常适合图像识别比标准的神经网,也更快地训练. 为了检测车轮的数量,可以将低分子输入分为许多重叠的"车轮大小"贴片,然后将每个贴片用作已训练以检测车轮的CNN的输入.由于在同一轮周围的多个补丁程序中有可能
如果我想培训Stanford神经网络依赖解析器的另一种语言,则需要" TreebanklanguagePack"(TLP)(TLP),但是有关此TLP的信息非常有限: 您的树库的特殊性及其包含的语言 如果我使用另一种语言的"树库",该语言遵循与PTB相同的格式,并且我的数据正在使用conll格式.依赖性格式遵循"通用依赖性" UD.我需要这个TLP吗? 解决方案 在当前的Corenlp释放时,TreeBanklanguagePack仅在依赖项解析器中仅用于1)确定输入文本编码和2)确定哪些令牌为标点符号[1]. . 那么,快速解决方案的最佳选择可能是坚持使用UD英语TreebanklanguagePack.您应该通过将属性language指定为"UniversalEnglish"来执行此操作(无论您是通过代码还是命令行访问依赖项解析器).如果您通过CORENLP主入口点使用依赖项解析器,则此属性密钥应为depparse.language. 技术细节
Optuna用于实施神经网络算法和学习系数组合的优化. 我已经为优化器设置了一个候选区域并尝试训练它,但是我收到了一条错误消息,即参数列表为空. class Net(pl.LightningModule): def __init__(self, n_layers=1, n_mid=10, lr=0.01): super().__init__() self.n_layers = n_layers self.n_mid = n_mid self.lr = lr self.layers = nn.Sequential() def forward(self, x): h = self.layers(x) return h def training_step(self, batch, batch_idx): x
我有一个.在成功之前(全部在Windows机器上). 我的代码本质上是表格 library(nnet) data = data.frame(out=c(0, 0.1, 0.4, 0.6), in1=c(1, 2, 3, 4), in2=c(10, 4, 2, 6)) net = nnet(out ~ in1 + in2, data=data, size=5) library(doParallel) registerDoParallel(cores=detectCores()-2) results = foreach(test=1:10, .combine=rbind, .packages=c("nnet")) %dopar% { result = predict(net, newdata = data.frame(in1=test, in2=5)) return(result) } 除了适合和预测的更
正如我以前的一些问题中提到的那样,我仍在努力实施在火炬中的暹罗神经网络. 我终于得到了很好的实施,但是现在我想添加一个迷你批次培训.也就是说,我想用一组培训元素训练暹罗神经网络,而不是只使用一个. 不幸的是,我对2个Minibatches的实现不起作用.我无法解决错误的反向传播存在问题. 这是主要体系结构: th> perceptron_general nn.Sequential { [input -> (1) -> output] (1): nn.ParallelTable { input |`-> (1): nn.Sequential { | [input -> (1) -> (2) -> output] | (1): nn.ParallelTable { | input | |`-> (1): nn.Sequential { |
我正在尝试使用10倍CV在我的数据集上运行KNN分类器.我在WEKA中有一些模型经验,但努力将其转移到Sklearn. 以下是我的代码 filename = 'train4.csv' names = ['attribute names are here'] df = pandas.read_csv(filename, names=names) num_folds = 10 kfold = KFold(n_splits=10, random_state=7) model = KNeighborsClassifier() results = cross_val_score(model, df.drop('mix1_instrument', axis=1), df['mix1_instrument'], cv=kfold) print(results.mean()) 我正在收到此错误 ValueError: could not convert string to f
我的问题是关于将CSV文件输入神经网络之前对CSV文件进行预处理. 我想使用python中的tflearn建立一个著名的虹膜数据集的深神经网络. 数据集:我正在使用tflearn加载CSV文件.但是,我的数据集的类列有诸如iris-setosa,iris-versicolor,iris-virginica等单词. nueral网络仅与数字一起工作.因此,我必须找到一种将类从单词更改为数字的方法.由于它是一个很小的数据集,因此我可以使用Excel/Text Editor手动进行操作.我手动分配了不同类的数字. 但是,我不可能为使用的每个数据集都这样做.因此,我尝试使用熊猫执行一个热编码. preprocess_data = pd.read_csv("F:\Gautam\.....\Dataset\iris_data.csv") preprocess_data = pd.get_dummies(preprocess_data) 但是现在,我无法使用此代码:
我有2个单独的DataFrames,其中包含大约半百万张图像的信息,总概括了6个以上的GB.有4个.parquet我必须pd.concat()一个一个文件,以制作一个新的dataframe imgs包含137*236的像素,值范围从0-32331和图像的ID列. . imgs >> image_id 0 1 ... 32330 32331 0 Train_50210 246 253 ... 251 250 1 Train_50211 250 245 ... 241 244 ... ... ... ... ... ... 453651 Train_50210 0 253 ...
将模型与存储的Protobuf版本进行比较时,我的输出有所不同(通过这是我加载层的方式 input = graph.get_tensor_by_name("lstm_1_input_1:0") layer1 = graph.get_tensor_by_name("lstm_1_1/kernel:0") layer2 = graph.get_tensor_by_name("lstm_1_1/recurrent_kernel:0") layer3 = graph.get_tensor_by_name("time_distributed_1_1/kernel:0") output = graph.get_tensor_by_name("activation_1_1/div:0") 这是我认为显示各个元素的方式. 显示重量: with tf.Session(graph=graph) as sess: print ses
我正在使用Keras培训神经网络.每次训练模型时,我都会使用Tree-based feature selection通过ExtraTreesClassifier()选择略有不同的功能集.每次训练后,我在验证集上计算AUCROC,然后返回循环以再次使用不同的功能训练模型.这个过程非常效率低下,我想使用一些Python库中的某些优化技术选择最佳的功能数量. 要优化的函数是用于交叉验证的auroc,只能在训练模型对选定特征进行训练后才能计算出来.通过以下函数ExtraTreesClassifier(n_estimators=10, criterion=’gini’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’)选择这些功能,我们看到目标函数并不直接取决于要优化的参数. auroc的目标函数与神经网络训练和神经网络有关,将特征作
我正在寻找神经网络优化中的4种最佳算法.我需要名称,任何描述,学习方法和拓扑都非常有帮助. 我认为多层感知器(MLP)是其中之一,但我不确定. 谢谢大家. 解决方案 您的问题确实很广.这很难回答,因为不同的优化器具有其优点和缺点.我要说的是,在当今最好的优化器中,您会发现Nestov Momentum的Adam,RMSProp,Adagrad和SGD.您可以阅读有关这些方法(以及其他方法)在这里. P> 其他解决方案 首先,我同意这个问题确实太广泛了,但是,我想添加一些我个人的统一性,发现对帮助我回答这个问题很有用.在这样做的过程中,我希望这些资源能够帮助其他人对我的帮助.他们在这里是: Sebastian Ruder Mod Yu Yu Zeng的 Anish Singh Walia的讨论在此主题上. 我希望这对某人有帮助.