我想用这个神经网络绘制 StackOverflow 的标志:
理想情况下,NN 应该变成[r, g, b] = f([x, y])。换句话说,它应该为给定的坐标对返回 RGB 颜色。FFNN 非常适用于简单的形状,如圆形或盒子。例如,经过数千个 epoch 后,一个圆看起来像这样:
自己试试:https : //codepen.io/adelriosantiago/pen/PoNGeLw
然而,即使经过数千次迭代,StackOverflow 的标志也更加复杂,因此 FFNN 的结果有些糟糕:
从左到右:
自己试试:https : //codepen.io/adelriosantiago/pen/xxVEjeJ
一些感兴趣的参数是synaptic.Architect.Perceptron定义和learningRate值。
你能改进这个片段吗?如果是这样,请解释你做了什么。如果有更好的 NN 架构来处理此类工作,您能否提供一个示例?
附加信息:
javascript artificial-intelligence training-data neural-network synaptic.js
我检查谷歌,但没有找到任何好的免费视频教程 anjular js这个网站看起来很好(http://egghead.io),但需要钱.你对angularjs有什么免费的视频培训吗?
假设我使用的是在文本文件中读取的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) 我正在用R做机器学习.遵循标准的机器学习方法,我想将我的数据随机分成训练,验证和测试数据集.我如何在R中做到这一点?
我知道有一些关于如何分成2个数据集的相关问题(例如这篇文章),但是如何对3个分割数据集进行分析并不明显.顺便说一句,正确的方法是使用3个数据集(包括验证集来调整超参数).
我想做一个图像分类器,但是我不懂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) 我正在使用一个大数据集,所以我试图使用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".
有人可以帮助理解这里发生的事情吗?
提前致谢
感谢Google,它提供了一些预先训练好的模型和tensorflow API.
我想知道如何通过向模型中添加新类来重新训练从上述存储库中获得的预训练模型.例如,COCO数据集训练模型有90个类,我想将1或2个类添加到现有类中,结果得到一个92类对象检测模型.
本地运行由存储库提供,但它完全用新训练的类替换那些预训练的类,只提到列车和评估.
那么,有没有其他方法来重新训练模型并获得92个课程?
python object-detection training-data tensorflow pre-trained-model
我有一个非常不平衡的数据集。我使用 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
我正在使用队列使用下面的代码将我的训练示例提供给我的网络,并且它正常工作.
但是,我希望每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) 随着我的输入不断涌现,我想实现对神经网络的持续训练.但是,当我获得新数据时,标准化值将随时间而变化.让我们说,我得到的时间:
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) training-data ×10
tensorflow ×4
javascript ×2
python ×2
r ×2
angularjs ×1
keras ×1
lstm ×1
node.js ×1
oversampling ×1
python-3.x ×1
queue ×1
scikit-learn ×1
synaptic.js ×1