[ MOOC课程学习 ] 人工智能实践:Tensorflow笔记

xiaoxiao2021-02-28  37

课程链接这这里

随机产生 32 组生产出的零件的体积和重量,训练 3000 轮,每 500 轮输出一次损失函数

import tensorflow as tf import numpy as np SEED = 23455 rng = np.random.RandomState(SEED) BATCH_SIZE = 8 X_NUM = 32 STEPS = 3000 LEARNING_RATE = 0.001 X = rng.rand(X_NUM, 2) # LABEL = [[1] if x[0] + x[1] < 1 else [0] for x in X] LABEL = [[int(x0 + x1 < 1)] for (x0, x1) in X] x = tf.placeholder(tf.float32, [None, 2], 'x') label = tf.placeholder(tf.float32, [None, 1], 'label') w1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1), name='w1') w2 = tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1), name='w2') y1 = tf.matmul(x, w1) y = tf.matmul(y1, w2) loss = tf.reduce_mean(tf.square(y - label)) train_op = tf.train.GradientDescentOptimizer(LEARNING_RATE).minimize(loss) with tf.Session() as sess: sess.run(tf.global_variables_initializer()) epoch = 0 for step in range(STEPS): start = ( step * BATCH_SIZE) % 32 end = min( (start + BATCH_SIZE), X_NUM) loss_v, _ = sess.run([loss, train_op], feed_dict={x: X[start:end], label: LABEL[start:end]}) if step % 500 == 0: epoch += 1 print('step {}/{}, loss is {} %'.format(step, STEPS, loss_v)) print('w1: ', sess.run(w1)) print('w2: ', sess.run(w2))

1.细节:

LABEL = [[int(x0 + x1 < 1)] for (x0, x1) in X] label = tf.placeholder(tf.float32, [None, 1], 'label') # int(x0 + x1 < 1) 要用[]包起来

2. class numpy.random.RandomState

Container for the Mersenne Twister pseudo-random number generator. 手册在这里 方法:

beta(a, b[, size]) Draw samples from a Beta distribution.binomial(n, p[, size]) Draw samples from a binomial distribution.bytes(length) Return random bytes.chisquare(df[, size]) Draw samples from a chi-square distribution.choice(a[, size, replace, p]) Generates a random sample from a given 1-D arraydirichlet(alpha[, size]) Draw samples from the Dirichlet distribution.exponential([scale, size]) Draw samples from an exponential distribution.f(dfnum, dfden[, size]) Draw samples from an F distribution.gamma(shape[, scale, size]) Draw samples from a Gamma distribution.geometric(p[, size]) Draw samples from the geometric distribution.get_state() Return a tuple representing the internal state of the generator.gumbel([loc, scale, size]) Draw samples from a Gumbel distribution.hypergeometric(ngood, nbad, nsample[, size]) Draw samples from a Hypergeometric distribution.laplace([loc, scale, size]) Draw samples from the Laplace or double exponential distribution with specified location (or mean) and scale (decay).logistic([loc, scale, size]) Draw samples from a logistic distribution.lognormal([mean, sigma, size]) Draw samples from a log-normal distribution.logseries(p[, size]) Draw samples from a logarithmic series distribution.multinomial(n, pvals[, size]) Draw samples from a multinomial distribution.multivariate_normal(mean, cov[, size, …) Draw random samples from a multivariate normal distribution.negative_binomial(n, p[, size]) Draw samples from a negative binomial distribution.noncentral_chisquare(df, nonc[, size]) Draw samples from a noncentral chi-square distribution.noncentral_f(dfnum, dfden, nonc[, size]) Draw samples from the noncentral F distribution.normal([loc, scale, size]) Draw random samples from a normal (Gaussian) distribution.pareto(a[, size]) Draw samples from a Pareto II or Lomax distribution with specified shape.permutation(x) Randomly permute a sequence, or return a permuted range.poisson([lam, size]) Draw samples from a Poisson distribution.power(a[, size]) Draws samples in [0, 1] from a power distribution with positive exponent a - 1.rand(d0, d1, …, dn) Random values in a given shape. Random values in a given shape. Create an array of the given shape and populate it with random samples from a uniform distribution over [0, 1). 均匀分布 randint(low[, high, size, dtype]) Return random integers from low (inclusive) to high (exclusive).randn(d0, d1, …, dn) Return a sample (or samples) from the “standard normal” distribution. Return a sample (or samples) from the “standard normal” distribution. If positive, int_like or int-convertible arguments are provided, randn generates an array of shape (d0, d1, ..., dn), filled with random floats sampled from a univariate “normal” (Gaussian) distribution of mean 0 and variance 1 (if any of the d_i are floats, they are first converted to integers by truncation). A single float randomly sampled from the distribution is returned if no argument is provided. This is a convenience function. If you want an interface that takes a tuple as the first argument, use numpy.random.standard_normal instead. 标准正态分布 如果想要一个以元组作为第一个参数的接口,改用numpy.random.standard_normal。 random_integers(low[, high, size]) Random integers of type np.int between low and high, inclusive.random_sample([size]) Return random floats in the half-open interval [0.0, 1.0).rayleigh([scale, size]) Draw samples from a Rayleigh distribution.seed([seed]) Seed the generator.set_state(state) Set the internal state of the generator from a tuple.shuffle(x) Modify a sequence in-place by shuffling its contents.standard_cauchy([size]) Draw samples from a standard Cauchy distribution with mode = 0.standard_exponential([size]) Draw samples from the standard exponential distribution.standard_gamma(shape[, size]) Draw samples from a standard Gamma distribution.standard_normal([size]) Draw samples from a standard Normal distribution (mean=0, stdev=1).standard_t(df[, size]) Draw samples from a standard Student’s t distribution with df degrees of freedom.tomaxint([size]) Random integers between 0 and sys.maxint, inclusive.triangular(left, mode, right[, size]) Draw samples from the triangular distribution over the interval [left, right].uniform([low, high, size]) Draw samples from a uniform distribution.vonmises(mu, kappa[, size]) Draw samples from a von Mises distribution.wald(mean, scale[, size]) Draw samples from a Wald, or inverse Gaussian, distribution.weibull(a[, size]) Draw samples from a Weibull distribution.zipf(a[, size]) Draw samples from a Zipf distribution.
转载请注明原文地址: https://www.6miu.com/read-2632080.html

最新回复(0)