我想在BigQuery ML中使用现有的 Scikit Learn LogisticRegression 模型。但是,BQ ML 目前有 50 个唯一标签的硬性限制,我的模型需要处理更多。
BQ 接受TensorFlow 模型,似乎没有这个限制。
如何将现有的 Scikit 逻辑回归模型转换为 TensorFlow 模型?
我想在BigQuery ML中使用现有的 Scikit Learn LogisticRegression 模型。但是,BQ ML 目前有 50 个唯一标签的硬性限制,我的模型需要处理更多。
BQ 接受TensorFlow 模型,似乎没有这个限制。
如何将现有的 Scikit 逻辑回归模型转换为 TensorFlow 模型?
当然,这是 TF 2.0 中的骨架。
import tensorflow as tf
weights = tf.Variable(tf.random.normal(shape=(784, 10), dtype=tf.float64))
biases = tf.Variable(tf.random.normal(shape=(10,), dtype=tf.float64))
def logistic_regression(x):
lr = tf.add(tf.matmul(x, weights), biases)
return lr
def cross_entropy(y_true, y_pred):
y_true = tf.one_hot(y_true, 10)
loss = tf.nn.softmax_cross_entropy_with_logits(labels=y_true, logits=y_pred)
return tf.reduce_mean(loss)
def grad(x, y):
with tf.GradientTape() as tape:
y_pred = logistic_regression(x)
loss_val = cross_entropy(y, y_pred)
return tape.gradient(loss_val, [weights, biases])