31 October 2017

Best Projectors for Your Smartphone, Tablet, or Laptop


best-projectors-smartphone

Although televisions remain the standard for home entertainment, projectors offer phenomenal value. Using a projector brings the wonder of the cinema into the home. Plus, projectors are useful for a variety of activities, from movies, television, and gaming to business presentations. But picking the right projector can be a challenge. Check out the best projectors for your smartphone, tablet, or laptop! Why Buy a Projector? The price of televisions has dropped substantially. Even 4K TV panels plummeted in price. However, snagging a decent 4K television will still set you back quite a bit of cash. Projectors provide several advantages over...

Read the full article: Best Projectors for Your Smartphone, Tablet, or Laptop


Read Full Article

Google’s Fast Pair feature starts arriving on non-Pixel Android phones


 In the avalanche of news that was Google’s Pixel 2 event last month, the company kind of glossed over the Fast Pair feature. Understandably so — it had a lot to get through at the event. And besides, it was far from the coolest thing about the company’s new Pixel Buds headphones (that title goes to the Babelfish-esque real-time translation feature). The feature is similar to… Read More
Read Full Article

Eager Execution: An imperative, define-by-run interface to TensorFlow




Today, we introduce eager execution for TensorFlow.

Eager execution is an imperative, define-by-run interface where operations are executed immediately as they are called from Python. This makes it easier to get started with TensorFlow, and can make research and development more intuitive.

The benefits of eager execution include:
  • Fast debugging with immediate run-time errors and integration with Python tools
  • Support for dynamic models using easy-to-use Python control flow
  • Strong support for custom and higher-order gradients
  • Almost all of the available TensorFlow operations
Eager execution is available now as an experimental feature, so we're looking for feedback from the community to guide our direction.

To understand this all better, let's look at some code. This gets pretty technical; familiarity with TensorFlow will help.

Using Eager Execution

When you enable eager execution, operations execute immediately and return their values to Python without requiring a Session.run(). For example, to multiply two matrices together, we write this:
import tensorflow as tf
import tensorflow.contrib.eager as tfe

tfe.enable_eager_execution()

x = [[2.]]
m = tf.matmul(x, x)
It’s straightforward to inspect intermediate results with print or the Python debugger.
print(m)
# The 1x1 matrix [[4.]]
Dynamic models can be built with Python flow control. Here's an example of the Collatz conjecture using TensorFlow’s arithmetic operations:
a = tf.constant(12)
counter = 0
while not tf.equal(a, 1):
if tf.equal(a % 2, 0):
a = a / 2
else:
a = 3 * a + 1
print(a)
Here, the use of the tf.constant(12) Tensor object will promote all math operations to tensor operations, and as such all return values with be tensors.

Gradients

Most TensorFlow users are interested in automatic differentiation. Because different operations can occur during each call, we record all forward operations to a tape, which is then played backwards when computing gradients. After we've computed the gradients, we discard the tape.

If you’re familiar with the autograd package, the API is very similar. For example:
def square(x):
return tf.multiply(x, x)

grad = tfe.gradients_function(square)

print(square(3.)) # [9.]
print(grad(3.)) # [6.]
The gradients_function call takes a Python function square() as an argument and returns a Python callable that computes the partial derivatives of square() with respect to its inputs. So, to get the derivative of square() at 3.0, invoke grad(3.0), which is 6.

The same gradients_function call can be used to get the second derivative of square:
gradgrad = tfe.gradients_function(lambda x: grad(x)[0])

print(gradgrad(3.)) # [2.]
As we noted, control flow can cause different operations to run, such as in this example.
def abs(x):
return x if x > 0. else -x

grad = tfe.gradients_function(abs)

print(grad(2.0)) # [1.]
print(grad(-2.0)) # [-1.]

Custom Gradients

Users may want to define custom gradients for an operation, or for a function. This may be useful for multiple reasons, including providing a more efficient or more numerically stable gradient for a sequence of operations.

Here is an example that illustrates the use of custom gradients. Let's start by looking at the function log(1 + ex), which commonly occurs in the computation of cross entropy and log likelihoods.
def log1pexp(x):
return tf.log(1 + tf.exp(x))
grad_log1pexp = tfe.gradients_function(log1pexp)

# The gradient computation works fine at x = 0.
print(grad_log1pexp(0.))
# [0.5]
# However it returns a `nan` at x = 100 due to numerical instability.
print(grad_log1pexp(100.))
# [nan]
We can use a custom gradient for the above function that analytically simplifies the gradient expression. Notice how the gradient function implementation below reuses an expression (tf.exp(x)) that was computed during the forward pass, making the gradient computation more efficient by avoiding redundant computation.
@tfe.custom_gradient
def log1pexp(x):
e = tf.exp(x)
def grad(dy):
return dy * (1 - 1 / (1 + e))
return tf.log(1 + e), grad
grad_log1pexp = tfe.gradients_function(log1pexp)

# Gradient at x = 0 works as before.
print(grad_log1pexp(0.))
# [0.5]
# And now gradient computation at x=100 works as well.
print(grad_log1pexp(100.))
# [1.0]

Building models

Models can be organized in classes. Here's a model class that creates a (simple) two layer network that can classify the standard MNIST handwritten digits.
class MNISTModel(tfe.Network):
def __init__(self):
super(MNISTModel, self).__init__()
self.layer1 = self.track_layer(tf.layers.Dense(units=10))
self.layer2 = self.track_layer(tf.layers.Dense(units=10))
def call(self, input):
"""Actually runs the model."""
result = self.layer1(input)
result = self.layer2(result)
return result
We recommend using the classes (not the functions) in tf.layers since they create and contain model parameters (variables). Variable lifetimes are tied to the lifetime of the layer objects, so be sure to keep track of them.

Why are we using tfe.Network? A Network is a container for layers and is a tf.layer.Layer itself, allowing Network objects to be embedded in other Network objects. It also contains utilities to assist with inspection, saving, and restoring.

Even without training the model, we can imperatively call it and inspect the output:
# Let's make up a blank input image
model = MNISTModel()
batch = tf.zeros([1, 1, 784])
print(batch.shape)
# (1, 1, 784)
result = model(batch)
print(result)
# tf.Tensor([[[ 0. 0., ...., 0.]]], shape=(1, 1, 10), dtype=float32)
Note that we do not need any placeholders or sessions. The first time we pass in the input, the sizes of the layers’ parameters are set.

To train any model, we define a loss function to optimize, calculate gradients, and use an optimizer to update the variables. First, here's a loss function:
def loss_function(model, x, y):
y_ = model(x)
return tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=y_)
And then, our training loop:
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.001)
for (x, y) in tfe.Iterator(dataset):
grads = tfe.implicit_gradients(loss_function)(model, x, y)
optimizer.apply_gradients(grads)
implicit_gradients() calculates the derivatives of loss_function with respect to all the TensorFlow variables used during its computation.

We can move computation to a GPU the same way we’ve always done with TensorFlow:
with tf.device("/gpu:0"):
for (x, y) in tfe.Iterator(dataset):
optimizer.minimize(lambda: loss_function(model, x, y))
(Note: We're shortcutting storing our loss and directly calling the optimizer.minimize, but you could also use the apply_gradients() method above; they are equivalent.)

Using Eager with Graphs

Eager execution makes development and debugging far more interactive, but TensorFlow graphs have a lot of advantages with respect to distributed training, performance optimizations, and production deployment.

The same code that executes operations when eager execution is enabled will construct a graph describing the computation when it is not. To convert your models to graphs, simply run the same code in a new Python session where eager execution hasn’t been enabled, as seen, for example, in the MNIST example. The value of model variables can be saved and restored from checkpoints, allowing us to move between eager (imperative) and graph (declarative) programming easily. With this, models developed with eager execution enabled can be easily exported for production deployment.

In the near future, we will provide utilities to selectively convert portions of your model to graphs. In this way, you can fuse parts of your computation (such as internals of a custom RNN cell) for high-performance, but also keep the flexibility and readability of eager execution.

How does my code change?

Using eager execution should be intuitive to current TensorFlow users. There are only a handful of eager-specific APIs; most of the existing APIs and operations work with eager enabled. Some notes to keep in mind:
  • As with TensorFlow generally, we recommend that if you have not yet switched from queues to using tf.data for input processing, you should. It's easier to use and usually faster. For help, see this blog post and the documentation page.
  • Use object-oriented layers, like tf.layer.Conv2D() or Keras layers; these have explicit storage for variables.
  • For most models, you can write code so that it will work the same for both eager execution and graph construction. There are some exceptions, such as dynamic models that use Python control flow to alter the computation based on inputs.
  • Once you invoke tfe.enable_eager_execution(), it cannot be turned off. To get graph behavior, start a new Python session.

Getting started and the future

This is still a preview release, so you may hit some rough edges. To get started today:
There's a lot more to talk about with eager execution and we're excited… or, rather, we're eager for you to try it today! Feedback is absolutely welcome.


Apple releases iOS 11.1 with shiny new emojis


 New emojis. Do you need to hear anything else? Apple just released an iOS update. iOS 11.1 is the first feature update for iOS 11. It adds a couple of new things, starting with dozens of new emojis. Apple already previewed some of the new emojis, but they are now available to everyone. It includes mythical creatures, such as wizards, fairies, mermaids and vampires. There are some new… Read More

Read Full Article

Apple releases iOS 11.1 with shiny new emojis


 New emojis. Do you need to hear anything else? Apple just released an iOS update. iOS 11.1 is the first feature update for iOS 11. It adds a couple of new things, starting with dozens of new emojis. Apple already previewed some of the new emojis, but they are now available to everyone. It includes mythical creatures, such as wizards, fairies, mermaids and vampires. There are some new… Read More

Read Full Article

Alas, Astropad’s ‘Camera Button’ was too cool for Apple


 Astropad’s forthcoming Luna display adapter and software turns your iPad into a wireless, essentially lag-free monitor for your Mac – and the company wanted to make it even cooler by including a clever hack that turned the iPad’s mostly useless front-facing camera into a software button. But, unsurprisingly, Apple has nixed the feature by rejecting the update which included… Read More

Read Full Article

Kevin Rose launches free rapid meditation app Oak


 If it’s tough to find even five minutes of quiet in your busy day, Oak could be the meditation app for you. Launched today by Digg founder and True Ventures partner Kevin Rose, the free Oak app offers quick and simple breathing exercises as well as longer guided and DIY meditations. While apps like Headspace, Simple Habit, and Calm focus on selling a wide array of themed meditations… Read More

Read Full Article

The Best Accounting Software Every Freelancer Needs


best-accounting-software-freelancer

Accounting is tricky for anyone, but it’s especially tough for freelancers. There are so many taxes to pay, taxes to reclaim, forms, credits, and equations to consider… it’s a minefield of complexity. Worst of all, running afoul of the rules can be expensive, stressful, and sometimes even a crime. Luckily, we no longer need to rely on manual bookkeeping. Instead, there are lots of accounting apps vying for your attention. In this article, we round up some of the best. Each app we cover has at least one unique strength. 1. Xero “The most intuitive professional-grade app on the market.”...

Read the full article: The Best Accounting Software Every Freelancer Needs


Read Full Article

Google launches a new $1,999 hardware kit for Hangouts Meet


 Hangouts Meet, Google’s service for running video and audio meetings, is getting a few new hardware companions. The company today announced the Hangouts Meet hardware kit that includes a touchscreen controller, speaker microphone, 4K camera and an ASUS Chromebox to control it all. The Chromebox (an Asus CN62) is the nerve center of this kit. While Chromeboxes (which you can think of as… Read More
Read Full Article

Google gives large businesses more options to connect directly to its cloud


In September, Google launched the beta of its dedicated interconnects for Google Cloud enterprise users. These direct connections to the Google Cloud Platform essentially give enterprises a private on-ramp to the Google Cloud, which is especially important if they want to mix and match their own data centers with applications that run in Google’s data centers. Today, the dedicated… Read More
Read Full Article

5 Times Smart Home Technology Went Terribly Wrong


smart-home-tech-went-wrong

The dawn of the smart devices — and eventually the smart home — changed consumer lives forever. But while smart homes come with great perks to make your life convenient, there are also times when smart devices do the exact opposite instead. Cybersecurity and privacy are major talking points for smart home enthusiasts, but it turns out a lot more can go wrong with these gadgets than malware. From malfunctions to situations no one saw coming, here are five times having a smart home went terribly wrong for owners. 1. When Roomba Does the Opposite of Cleaning Jesse Newton had...

Read the full article: 5 Times Smart Home Technology Went Terribly Wrong


Read Full Article

A Beginner’s Guide To Digital Photography


Digital has almost completely taken over the photography world. There are some diehards who still love the look of film (even though you can get it with Photoshop), but if you buy a camera today, there’s a good chance it’s going to be digital. Despite the simplicity of the digital photography process (point, shoot, repeat), some beginners might find the world of digital photography to be intimidating. Should you buy a DSLR or mirrorless camera? What do the different settings do? What accessories do you need? How can you improve your skills? These are all valid questions. And we’re here to give...

Read the full article: A Beginner’s Guide To Digital Photography


Read Full Article

Learn All the Tips Really Successful Learners Use


Time travel. It’s 2030. The robots have taken your job. What is the one secret technique that can help you survive in this future world? Learning skills. Come back to today. It is a “secret” because we pay so less attention to it even with so much of information around. Learning is a meta-skill that is an enabler for several other skills. Think creativity…or even something as mundane as deliberate practice. There is so much to learn and so little time. How to learn well is the only meta-skill you need to take on any other self-education project. Successful learners have developed...

Read the full article: Learn All the Tips Really Successful Learners Use


Read Full Article

Unroll.me brings its email management app to Android


 Android users will now be able to battle junk mail and manage their email subscriptions using the new Android app from Unroll.me. To be clear, anyone with a smartphone could get the benefits of the service already. You just had to connect you email account, then use Unroll.me’s features to unsubscribe to the emails you didn’t want and roll-up the rest into a single daily… Read More

Read Full Article

Roman is a cloud pharmacy for erectile dysfunction


 “When I was 17, I experienced erectile dysfunction.” My interviews with startup founders rarely start so candid. But to destigmatize the business of his new company Roman and empathize with customers, Zachariah Reitano is getting vulnerable. “I think in a good way I’ve become numb to the embarrassment” says 26-year-old Reitano. “I remember the embarrassment… Read More

Read Full Article

How to Make Your Own LED Ring Light for YouTube Videos


Whether you’re making a short film or building a YouTube studio, lighting is one of the most important things to consider. Lighting is more important than nearly any other piece of equipment, but versatile lighting made for video professionals can be heavy and expensive. Why not make your own DIY ring light and save a bit of cash? Let’s get started! This tutorial is also available in video form here: What Is a Ring Light? A ring light is a simple device. It’s a series of light sources (usually LEDs) arranged in a circle. They are most commonly used as...

Read the full article: How to Make Your Own LED Ring Light for YouTube Videos


Read Full Article

The Beginner’s Guide to Gmail


Are you looking for help with your new Gmail account? Or, are you still trying to figure out what all your Gmail email settings mean? You’ve come to the right place. In this guide, I’m going to… Show you how to create a new Gmail account. Understand the Inbox and how to organize your email. Look at advanced Gmail features. Talk about the Gmail mobile app. Point out how third-party cloud services work with your Gmail account online (or even offline). Whether you already have a Gmail account, or you’re thinking about signing up for one, this guide will have everything you need to...

Read the full article: The Beginner’s Guide to Gmail


Read Full Article

The Xbox One X Review: Unboxing and tearing it down


 This is the Xbox One X. A full review is coming, but until then, here are some pics of the outside and inside of unassuming gaming machine. The case is passe and boring. Inside are the chips and bits of the most powerful gaming console to date and they look great. Read More

Read Full Article

7 Places You Can Buy a Dedicated Linux PC or Laptop Online


buy-dedicated-linux-pc

It’s easy to install Linux on an existing laptop or desktop computer. But what if you want to save yourself the effort? Is it possible to buy a Linux computer, with your choice of operating system already installed? Over the past few years, more and more businesses are focusing on Linux users. A few of these companies have made a name for themselves, perhaps by focusing on high end hardware, or developing their own Linux distribution. If you’re looking for a Linux PC, here are seven places you can find one to buy online right now. 1. Station X Based...

Read the full article: 7 Places You Can Buy a Dedicated Linux PC or Laptop Online


Read Full Article

5 Wild but Common Android Myths That Need to Be Busted


Have you ever discovered that something you believed was just a myth? Myths are particularly dangerous because they can erroneously shape our thoughts on something to a negative perspective. Android is, unfortunately, the victim of many myths that have persisted for years. Let’s break down the most common ones and see what’s simply not true. Myth 1: Android Is a Wild West of Malware One of the most common lies detractors shout about Android is that it has malware waiting at every corner. “Our iPhones are impenetrable,” they say, “but Android can get viruses easily!” While it’s true that Android...

Read the full article: 5 Wild but Common Android Myths That Need to Be Busted


Read Full Article

Free Games! 6 Awesome Xbox One Games That Cost Nothing


awesome-free-xbox-game

The rise of digital downloads has made it easier than ever for developers to distribute their games without a price tag. Without the costs associated with producing cartridges or discs, studios can offer their games up for free. This means you, the player, can download tons of free games to your system to play without a cost. But not every “free” game is created equal. Some rely heavily on IAPs or downloadable content, and don’t actually offer a great deal without the player putting down some cold hard cash. We’ve picked the best titles that will all give you plenty...

Read the full article: Free Games! 6 Awesome Xbox One Games That Cost Nothing


Read Full Article

Latch touts first deliveries via NY Jet.com smart access tie-up


 In July b2b smart access startup Latch announced a partnership with ecommerce platform Jet.com to install 1,000 of its smart locks on residential apartment buildings in New York. It’s now announced the first “secure, unattended deliveries” enabled by the installations. Read More

Read Full Article

12 neat hidden features in the iPhone X


 With the iPhone X, Apple has had to rethink many of the iOS core gestures. The new device features a brand new design with a taller display, Face ID and no home button. If you plan on buying a new iPhone X, it’s going to take a while to get used to these new metaphors. So here’s a list of some not-so-obvious features in the iPhone X. Matthew Panzarino also wrote a thorough review… Read More

Read Full Article