标签: training-data

如何提高前馈神经网络的准确性?

我想用这个神经网络绘制 StackOverflow 的标志:

在此处输入图片说明

理想情况下,NN 应该变成[r, g, b] = f([x, y])。换句话说,它应该为给定的坐标对返回 RGB 颜色。FFNN 非常适用于简单的形状,如圆形或盒子。例如,经过数千个 epoch 后,一个圆看起来像这样:

在此处输入图片说明

自己试试:https : //codepen.io/adelriosantiago/pen/PoNGeLw


然而,即使经过数千次迭代,StackOverflow 的标志也更加复杂,因此 FFNN 的结果有些糟糕:

在此处输入图片说明

从左到右:

  1. StackOverflow 的 256 色徽标。
  2. 有 15 个隐藏的神经元:左边的手柄永远不会出现。
  3. 50 个隐藏神经元:一般来说结果很差。
  4. 0.03 作为学习率:在结果中显示蓝色(蓝色不在原始图像中)
  5. 时间递减的学习率:出现左手柄,但现在丢失了其他细节。

自己试试:https : //codepen.io/adelriosantiago/pen/xxVEjeJ

一些感兴趣的参数是synaptic.Architect.Perceptron定义和learningRate值。


我怎样才能提高这个神经网络的准确性?

你能改进这个片段吗?如果是这样,请解释你做了什么。如果有更好的 NN 架构来处理此类工作,您能否提供一个示例?

附加信息:

javascript artificial-intelligence training-data neural-network synaptic.js

15
推荐指数
1
解决办法
328
查看次数

angularjs免费视频教程

我检查谷歌,但没有找到任何好的免费视频教程 anjular js这个网站看起来很好(http://egghead.io),但需要钱.你对angularjs有什么免费的视频培训吗?

training-data angularjs

13
推荐指数
1
解决办法
2万
查看次数

将张量分成训练和测试集

假设我使用的是在文本文件中读取的TextLineReader.有没有办法把它分成火车和测试集Tensorflow?就像是:

def read_my_file_format(filename_queue):
  reader = tf.TextLineReader()
  key, record_string = reader.read(filename_queue)
  raw_features, label = tf.decode_csv(record_string)
  features = some_processing(raw_features)
  features_train, labels_train, features_test, labels_test = tf.train_split(features,
                                                                            labels,
                                                                            frac=.1)
  return features_train, labels_train, features_test, labels_test
Run Code Online (Sandbox Code Playgroud)

training-data cross-validation tensorflow

13
推荐指数
3
解决办法
2万
查看次数

R:如何将数据框分成训练,验证和测试集?

我正在用R做机器学习.遵循标准的机器学习方法,我想将我的数据随机分成训练,验证和测试数据集.我如何在R中做到这一点?

我知道有一些关于如何分成2个数据集的相关问题(例如这篇文章),但是如何对3个分割数据集进行分析并不明显.顺便说一句,正确的方法是使用3个数据集(包括验证集来调整超参数).

r machine-learning training-data

10
推荐指数
3
解决办法
3万
查看次数

如何在Node.js(tensorflow.js)中训练模型?

我想做一个图像分类器,但是我不懂python。Tensorflow.js使用我熟悉的javascript。可以用它训练模型吗?要这样做的步骤是什么?坦白说,我不知道从哪里开始。

我唯一想到的是如何加载“移动网络”,该网络显然是一组经过预先训练的模型,并使用该模型对图像进行分类:

const tf = require('@tensorflow/tfjs'),
      mobilenet = require('@tensorflow-models/mobilenet'),
      tfnode = require('@tensorflow/tfjs-node'),
      fs = require('fs-extra');

const imageBuffer = await fs.readFile(......),
      tfimage = tfnode.node.decodeImage(imageBuffer),
      mobilenetModel = await mobilenet.load();  

const results = await mobilenetModel.classify(tfimage);
Run Code Online (Sandbox Code Playgroud)

可以,但是对我没有用,因为我想使用带有创建的标签的图像来训练自己的模型。

=======================

说我有一堆图像和标签。如何使用它们训练模型?

const myData = JSON.parse(await fs.readFile('files.json'));

for(const data of myData){
  const image = await fs.readFile(data.imagePath),
        labels = data.labels;

  // how to train, where to pass image and labels ?

}
Run Code Online (Sandbox Code Playgroud)

javascript training-data node.js tensorflow tensorflow.js

10
推荐指数
4
解决办法
345
查看次数

Keras train_on_batch损失/准确度0

我正在使用一个大数据集,所以我试图使用train_on_batch(或适合epoch = 1)

model = Sequential()
model.add(LSTM(size,input_shape=input_shape,return_sequences=False))
model.add(Dense(output_dim))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=["accuracy"])

for e in range(nb_epoch):
    for batch_X, batch_y in batches:
        model.train_on_batch(batch_X,batch_y)
        # or
        # model.fit(batch_X,batch_y,batch_size=batch_size,nb_epoch=1,verbose=1,shuffle=True,)
Run Code Online (Sandbox Code Playgroud)

但是当训练开始时,会发生这种情况

(0, 128)
Epoch 1/1
128/128 [==============================] - 2s - loss: 0.3262 - acc: 0.1130

(129, 257)
Epoch 1/1
128/128 [==============================] - 2s - loss: -0.0000e+00 - acc: 0.0000e+00
Run Code Online (Sandbox Code Playgroud)

无论我等了多少个时代,它都没有改变.即使我改变批量大小,也会发生同样的事情:第一批具有良好的值,然后它再次进入"损失:-0.0000e + 00 - acc:0.0000e + 00".

有人可以帮助理解这里发生的事情吗?

提前致谢

python batch-processing training-data lstm keras

9
推荐指数
1
解决办法
5692
查看次数

如何让现有模型识别其他类?

感谢Google,它提供了一些预先训练好的模型和tensorflow API.

我想知道如何通过向模型中添加新类来重新训练从上述存储库中获得的预训练模型.例如,COCO数据集训练模型有90个类,我想将1或2个类添加到现有类中,结果得到一个92类对象检测模型.

本地运行由存储库提供,但它完全用新训练的类替换那些预训练的类,只提到列车和评估.

那么,有没有其他方法来重新训练模型并获得92个课程?

python object-detection training-data tensorflow pre-trained-model

9
推荐指数
1
解决办法
2208
查看次数

使用 sklearn.train_test_split 处理不平衡数据

我有一个非常不平衡的数据集。我使用 sklearn.train_test_split 函数来提取训练数据集。现在我想对训练数据集进行过采样,所以我用来计算 type1 的数量(我的数据集有 2 个类别和类型(type1 和 tupe2),但几乎所有的训练数据都是 type1。所以我不能过采样。

以前我曾经用我编写的代码分割训练测试数据集。在该代码中,所有类型 1 数据的 0.8 和所有类型 2 数据的 0.8 都在训练数据集中。

如何将此方法与 train_test_split 函数或 sklearn 中的其他分割方法一起使用?

*我应该只使用sklearn或我自己编写的方法。

training-data python-3.x scikit-learn oversampling imbalanced-data

9
推荐指数
1
解决办法
2万
查看次数

如何在使用队列时在tensorflow训练期间测试网络

我正在使用队列使用下面的代码将我的训练示例提供给我的网络,并且它正常工作.

但是,我希望每n次迭代能够提供一些测试数据,但我真的不知道应该如何进行.我应该暂时停止队列并手动提供测试数据吗?我应该创建另一个队列来测试数据吗?

编辑:这样做的正确方法是创建一个单独的文件,比如eval.py连续读取最后一个检查点并评估网络?这就是他们在CIFAR10示例中的做法.

batch = 128 # size of the batch
x = tf.placeholder("float32", [None, n_steps, n_input])
y = tf.placeholder("float32", [None, n_classes])

queue = tf.RandomShuffleQueue(capacity=4*batch,
                      min_after_dequeue=3*batch,
                      dtypes=[tf.float32, tf.float32],
                      shapes=[[n_steps, n_input], [n_classes]])
enqueue_op = queue.enqueue_many([x, y])
X_batch, Y_batch = queue.dequeue_many(batch)

sess = tf.Session()

def load_and_enqueue(data):
    while True:
        X, Y = data.get_next_batch(batch)
        sess.run(enqueue_op, feed_dict={x: X, y: Y})

train_thread = threading.Thread(target=load_and_enqueue, args=(data))
train_thread.daemon = True
train_thread.start()

for _ in xrange(max_iter):
    sess.run(train_op)
Run Code Online (Sandbox Code Playgroud)

queue training-data neural-network deep-learning tensorflow

8
推荐指数
1
解决办法
974
查看次数

R中连续神经网络训练中数据的归一化

随着我的输入不断涌现,我想实现对神经网络的持续训练.但是,当我获得新数据时,标准化值将随时间而变化.让我们说,我得到的时间:

df <- "Factor1 Factor2 Factor3 Response
        10      10000   0.4     99
        15      10200   0       88
        11      9200    1       99
        13      10300   0.3     120"
df <- read.table(text=df, header=TRUE)

normalize <- function(x) {
    return ((x - min(x)) / (max(x) - min(x)))
}

dfNorm <- as.data.frame(lapply(df, normalize))

### Keep old normalized values
dfNormOld <- dfNorm 

library(neuralnet)
nn <- neuralnet(Response~Factor1+Factor2+Factor3, data=dfNorm, hidden=c(3,4), 
    linear.output=FALSE, threshold=0.10,  lifesign="full", stepmax=20000)
Run Code Online (Sandbox Code Playgroud)

然后,随着时间的推移,

df2 <- "Factor1 Factor2 Factor3 Response
        12      10100   0.2     101
        14      10900   -0.7    108
        11      9800    0.8 …
Run Code Online (Sandbox Code Playgroud)

r normalization training-data neural-network

8
推荐指数
1
解决办法
579
查看次数